使用MySQL查询在列名中查找字符串

时间:2014-03-04 06:01:27

标签: php mysql sql

我正在尝试编写一个select查询来搜索特定列中的字符串。

例如:

+----+------+-------------------------------+
| id | name |           alternate           |
+----+------+-------------------------------+
| 1  | Test | Test,Tests,test,tests,te,test |
| 2  | Demo | Demo.demo,dem,Dem             |
+----+------+-------------------------------+

等...

我只想编写一个查询,以便在列名替换

中检查提交的值名称

例如:我将提交名称test,它应该检查是否存在包含

的列名替换

4 个答案:

答案 0 :(得分:2)

使用FIND_IN_SET()

$query = SELECT * FROM tablename WHERE FIND_IN_SET('test', alternate);

if(mysql_num_rows($query) > 0){
   //if test was found
} else {
   // test not found
}

了解更多信息here

答案 1 :(得分:1)

mysql中尝试此查询:

SELECT ID,NAME,ALTERNATE,
CASE WHEN (FIND_IN_SET(name, alternate) > 0)
THEN 'TRUE' ELSE 'FALSE' END RESULT FROM TABLE1;

SQL Fiddle

答案 2 :(得分:0)

试试这个

select count(*) as total from tablename where alternate LIKE %test%

如果返回的total值大于零,则alternate列中存在字符串测试

答案 3 :(得分:0)

这样做的一种方法是使用String函数INSTR来检查字符串中是否存在Substring。您甚至可以在Substring和String中传递一个变量来检查。

SELECT IF(INSTR(alternate,'test')! = 0,'Exists', 'Not Exists') as SearchResult FROM table;

文档可在以下网址找到:

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_instr