如何检查列值是否在字符串SQL中

时间:2015-08-07 22:04:09

标签: php mysql sql-server

我有一个包含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条记录

2 个答案:

答案 0 :(得分:3)

SELECT * from TABLE where LOCATE(COLUMN, @STRING)>0;

LOCATE(a,b)返回一个数字,给出a中b的字符位置,或返回0.

请参阅Mysql LOCATE()

文档讨论当其中一个字符串是'二进制字符串'时,LOCATE()仅区分大小写。这可能不会影响您的用例,但如果它成为一个问题,您可以将二进制字符串CONVERT()转换为语言环境并使用LOWER()来获得小写。

MySQL String Functions

答案 1 :(得分:2)

mysql的动态类似语法是

SELECT * from TABLE where @STRING like CONCAT('%',COLUMN,'%')