我有一个包含150,000条记录的数据库,我需要将其FULL列值或记录与字符串的某些部分进行匹配。 **
我想检查 STRING 是否包含 COLUMN 记录而不是! 如果COLUMN包含字符串
** (以下示例)
用于测试目的 假设数据库有 TABLE ,1 COLUMN 和1条记录,因为记录与此类似: / p>
- 来找我
我需要将其与 @STRING
相匹配
- 她想来找我现在
我想执行类似于:的内容(但当然这不起作用)
SELECT * from TABLE where @STRING like '%'+COLUMN+'%'
我似乎无法使用SQL来解决这个问题,但PHP的用法是可行的,但如果解决方案是SQL,则更喜欢但如果有PHP的解决方案可用,请提出并注意数据库有超过150,000条记录
答案 0 :(得分:3)
SELECT * from TABLE where LOCATE(COLUMN, @STRING)>0;
LOCATE(a,b)返回一个数字,给出a中b的字符位置,或返回0.
文档讨论当其中一个字符串是'二进制字符串'时,LOCATE()仅区分大小写。这可能不会影响您的用例,但如果它成为一个问题,您可以将二进制字符串CONVERT()转换为语言环境并使用LOWER()来获得小写。
答案 1 :(得分:2)
mysql的动态类似语法是
SELECT * from TABLE where @STRING like CONCAT('%',COLUMN,'%')