我们遇到了问题,因为这是表格的设置方式。我们如何从一个表中选择一个不包含值的表?如果我们有一个,两个,我们做
SELECT *
FROM table
WHERE column NOT IN('one')
我们仍然会得到那一行。这个的正确语法是什么?
由于
答案 0 :(得分:1)
尝试:
SELECT *
FROM table
WHERE FIND_IN_SET('one',column) = 0
我做了一些测试:
mysql> CREATE TABLE setTest (s SET('a','b','c','d'));
Query OK, 0 rows affected (0.60 sec)
mysql> INSERT INTO setTest VALUES ('a'),('a,b'),('b'),('a,c'),('c,d');
Query OK, 5 rows affected (0.14 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM setTest;
+------+
| s |
+------+
| a |
| a,b |
| b |
| a,c |
| c,d |
+------+
5 rows in set (0.20 sec)
mysql> SELECT * FROM setTest WHERE FIND_IN_SET('a',s) = 0;
+------+
| s |
+------+
| b |
| c,d |
+------+
2 rows in set (0.12 sec)
mysql> SELECT * FROM setTest WHERE FIND_IN_SET('b',s) = 0;
+------+
| s |
+------+
| a |
| a,c |
| c,d |
+------+
3 rows in set (0.00 sec)
mysql> SELECT * FROM setTest WHERE FIND_IN_SET('b',s) > 0;
+------+
| s |
+------+
| a,b |
| b |
+------+
2 rows in set (0.04 sec)
答案 1 :(得分:1)
这是有效的:
SELECT *, FIND_IN_SET('hidden', props) As hidden
FROM gt_content
HAVING hidden IS NULL
答案 2 :(得分:0)
来自http://dev.mysql.com/doc/refman/5.0/en/set.html的mysql手册:
通常,使用FIND_IN_SET()函数或LIKE运算符搜索SET值:
SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)>0;
SELECT * FROM tbl_name WHERE set_col LIKE '%value%';
第一个语句查找set_col包含值集成员的行。第二个是类似的,但不一样:它找到set_col在任何地方包含值的行,即使是另一个set成员的子串。