查询SQL中字符串的完全匹配

时间:2011-06-28 05:48:31

标签: mysql sql

我想查询数据库表中字符串的完全匹配。

当我将查询编写为

select description from tproduct where description like '%diamond%'

它运行并将结果作为wild card查询提供。例如,我有ringdiamond,diamondmaster等。

但我想只获得“钻石”。

为此,我做了:

select description from tproduct where description = 'diamond'

但它给出了一个错误:

  

错误:'where子句'

中的未知列'diamond'

描述栏包含:

This bracelet is composed of round diamond surrounded by milgrain detailing. Its secure setting prevents it from twisting and ensures it will sit impeccably on her wrist.


This stylish design is the perfect accessory for the day or evening. Akoya cultured pearls are lined up by a string of bezel-set round diamond.

5 个答案:

答案 0 :(得分:9)

如果我正确地理解了这个问题,那么当它是一个独特的单词并且不是像“diamondville”这样的另一个单词的一部分时,你想匹配“钻石”。您可以执行类似SELECT * FROM tproduct WHERE描述的操作,例如'%diamond%',这将匹配所有包含空格的“菱形”记录。

但那不行。如果描述以“Diamond”开头,或者在“Diamond”之后有逗号或句号,那么就找不到记录

您需要匹配正则表达式。您可以使用以下命令指定单词边界:

select * from t2 where description regexp '[[:<:]]diamond[[:>:]]';

有关MySQL正则表达式的更多信息,请参阅此页面:http://dev.mysql.com/doc/refman/5.1/en/regexp.html

答案 1 :(得分:3)

您可以使用带有特殊图案边界的正则表达式。

select description from tproduct 
where description regexp '[[:<:]]diamond[[:>:]]'

请参阅REGEXP

答案 2 :(得分:0)

select description from tproduct where description like 'diamond'

答案 3 :(得分:0)

对于SQL Server: Description
    SELECT description FROM tproduct WHERE description ='diamond'COLLATE SQL_Latin1_General_CP1_CS_AS

答案 4 :(得分:-1)

select description from tproduct where description = 'diamond'