mysql:查找(并显示)不在表中的字符串

时间:2012-01-31 21:04:54

标签: mysql

我有一个字符串列表,我想只看到数据库中的字符串。

例如我有这个字符串:数据库中的“Conducteur(trice)de bus”:

所以,如果我这样做:

mysql> select * from job where description = "Conducteur(trice) de bus";
+-------+--------------------------+
| id    | description              |
+-------+--------------------------+
| 14495 | Conducteur(trice) de bus |
+-------+--------------------------+
1 row in set (0.00 sec)

mysql> 

现在如果作业“Cinéaste”不存在:

mysql> select * from job where description = "Cinéaste";
Empty set (0.00 sec)

mysql> 

但我希望完全相反,即如果字符串在这里我不希望显示结果,如果它不在这里,我想要显示字符串。

以下是我之前解释的相同字符串的内容:

mysql> select * from job [clause i don't know] "Conducteur(trice) de bus";
Empty set (0.00 sec)
mysql> 
mysql> select * from job [clause i don't know] "Cinéaste";
+-------------+
| description |
+-------------+
| Cinéaste    |
+-------------+
mysql> 

所以当找到记录时,没有显示任何内容,当找不到时,会显示我正在寻找的字符串。

知道如何使用MySQL进行此类查询吗?

2 个答案:

答案 0 :(得分:2)

修改:尝试

SELECT 'Cinéaste' AS 'description' FROM `job` WHERE NOT EXISTS
(SELECT * FROM `job` WHERE description = 'Cinéaste')
LIMIT 1

答案 1 :(得分:2)

您应该创建一个表(可以是临时表),其中包含要检查的字符串列表,每行一个。让我们考虑创建一个名为check的表,其中包含要包含要检查的值的列description。然后你可以使用这个查询:

SELECT description
FROM check
WHERE description NOT IN (
    SELECT DISTINCT description FROM metier
);