keyword = house
SELECT * FROM products WHERE description LIKE '%house%'
此查询还会返回包含关键字的记录,例如法院,但我只想找房子。如何仅在“房屋”的描述中的任何地方进行搜索?
感谢。
更新
只是为了更加澄清..
actually house, can be at
- the start of the description .. "House for sale..",
- can be quoted -- "house", 'house'
- can have exclamation .. house!!!, house!
- others - house? etc ..
这就是我使用%house%
的原因答案 0 :(得分:2)
你在寻找包含整个单词的长篇字符串吗?
答案 1 :(得分:1)
之前和之后的%
会搜索搜索关键字之前和之后的所有匹配文字,请尝试使用以进行精确搜索:
SELECT * FROM products WHERE description = 'house'
答案 2 :(得分:1)
SELECT * FROM products WHERE description rlike'[[:<:]] house [[:>:]]'
rlike是REGEXP的synonim。
[[:<:]]表示单词的开头和
[[:>:]]这个词的结尾。
它适用于您的所有要求(不区分大小写,引用的单词或单词结尾,或者用感叹号和其他非字母字符乞讨)
答案 3 :(得分:0)
尝试使用关键字周围的空格:
SELECT * FROM products WHERE description LIKE '% house %' OR description LIKE 'house %' OR description LIKE '% house' OR description LIKE '% house%'
编辑:在搜索中添加了更多选项。最后一个允许house.
或house,
,但housecat
之类的内容也会匹配。正则表达式在这里工作得最好。这个解决方案来自Astandar,他删除了他的答案。
答案 4 :(得分:0)
简单的东西只有房子意味着,使用这个
SELECT * FROM products WHERE description = 'house'
如果你想要在背后包含房子的任何单词意味着使用这个,
SELECT * FROM products WHERE description LIKE '%house'
如果你想要在前端包含house的任何单词意味着使用它,
SELECT * FROM products WHERE description LIKE 'house%'
如果你想在描述中的任何地方包含任何单词,请使用此,
SELECT * FROM products WHERE description LIKE '%house%'