例如: 我有1个字用于搜索数据。这个词就是'ayam'。
这是我的疑问:
select nama_product from product where nama_product like %a%
工作正常。但它显示了我不想展示的记录。 这是结果:
第一个和第二个结果没问题。但是第三次也是最后一次我不想表现出来。
因为我想要'ayam'而不是'b'ayam'“
我该如何处理?我不知道它是否重复。因为我已经搜索过了,但我没找到。
答案 0 :(得分:1)
不幸的是,这是SQL的限制。某些SQL数据库具有高级文本搜索功能,例如允许非常特定的文本结果的正则表达式。
对于您的情况,您可能需要执行多个LIKE条件。例如:
select nama_product
from product
where
nama_product like 'ayam %'
or nama_product like '% ayam %'
or nama_product like '% ayam'
or nama_product = 'ayam'
请注意,如果文本字段非常大或表格很大,依赖LIKE运算符的查询可能会变得非常慢。 LIKE不适合大型数据集。如果这是您认为将来会变得非常大的数据集,最好以不需要LIKE运算符的方式进行设计。
答案 1 :(得分:1)
如果你需要搜索单词'ayam'而没有任何前缀和后缀字符,你最好使用正则表达式。
例如,
SELECT namma_product FROM product WHERE namma_product REGEXP 'ayam'
试试这个。这将有效
答案 2 :(得分:0)
您可以使用regex仅匹配整个字词:
Gravity.TOP
select nama_product
from product
where nama_product regexp '(^| )ayam( |$)';
表示该字必须是字符串的开头,或者必须以空格开头(^| )
是我们匹配的词ayam
表示该字必须后跟空格,或者必须是字符串的结尾答案 3 :(得分:-1)
当你在其前后插入'%'表示关键字之前(之后)的所有字符时,只需改变你想要的方式 例如,只有关键字以“ayam”开头: 从产品中选择nama_product,其中nama_product如'ayam%'
另一个例子只是以“ayam”结尾的关键字: 从产品中选择nama_product,其中nama_product如'%ayam'
然后看看这里ithink你的答案就在这里: