我正在尝试编写一个select查询来搜索特定列中的字符串。
例如:
+----+------+-------------------------------+
| id | name | alternate |
+----+------+-------------------------------+
| 1 | Test | Test,Tests,test,tests,te,test |
| 2 | Demo | Demo.demo,dem,Dem |
+----+------+-------------------------------+
等...
我只想编写一个查询,以便在列名替换
中检查提交的值名称例如:我将提交名称test,它应该检查是否存在包含
的列名替换答案 0 :(得分:2)
$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;
答案 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