我使用below-sql查询数据库中的搜索值,但是当我搜索'study'时,它也会返回'caese study'、'get study materials'值。如何使用查询搜索字符串列中的精确包含?
$names='研究';“名称”列有逗号分隔的值,例如:“study,,new”,所以我也需要在其中搜索
SELECT * FROM datatitle WHERE names LIKE '%$names %' ;
SELECT * FROM datatitle WHERE names regexp '(^|[[:space:]])$names([[:space:]]|$)';
我尝试以上两个问题,但没有工作预期,请建议?
1条答案
按热度按时间mrwjdhj31#
不应在列中存储逗号分隔的值。您应该使用连接/关联表。如果可以的话,应该修复数据模型。
然而,有时我们无法控制别人真正糟糕的决定。mysql有
find_in_set()
:注意,我已经替换了常量
$names
使用参数。您应该学会使用参数将值传递到查询中。