MySQL搜索字符串
我正在寻找一种方法,从具有string列数据类型的tabla中获取一行。此列可以具有如下值:MySQL搜索字符串,mysql,Mysql,我正在寻找一种方法,从具有string列数据类型的tabla中获取一行。此列可以具有如下值: 1. "1,2,3,4,5" 2. "X,3,4,5,8" 3. "X,X,3,4,5" 4. "1,2,3,4,X" 5. "1,3,4,X,X" 等等 我想完成对字符串的搜索,如 "1,2,3,4,5" 我试着用一个 SELECT * FROM *table_name* WHERE *column* LIKE '%1,2,3,4,5%'; 希望此查询能够检索至少三个结果(在示例中
1. "1,2,3,4,5"
2. "X,3,4,5,8"
3. "X,X,3,4,5"
4. "1,2,3,4,X"
5. "1,3,4,X,X"
等等
我想完成对字符串的搜索,如
"1,2,3,4,5"
我试着用一个
SELECT *
FROM *table_name*
WHERE *column* LIKE '%1,2,3,4,5%';
希望此查询能够检索至少三个结果(在示例中为first、third和forth字符串),但它只返回第一个字符串,因为它当然是唯一与指定条件匹配的字符串。有人知道我实现这一成就的方法吗?我假设所列的
X
实际上就是X字符-如果是,试试看
SELECT * FROM table WHERE '1,2,3,4,5' REGEXP REPLACE(column, 'X', '.')
您应该查看
集合
数据类型:请阅读以下内容,您希望在此处返回哪些行?请注意,您可能不应该以CSV格式存储信息。在我的情况下,我希望按顺序返回与任何部分匹配的任何字符串,即如果soterd字符串I类似于X、2、3、4、5,则与我正在处理的条件匹配。在列出的示例中,第一个、第三个和第四个字符串与条件匹配。这是正确的,'X'实际上是属于字符串本身的字符。我不知道这个正则表达式替换(列,X','.')是什么意思,但它返回0个结果(甚至不是默认字符串)。我将从这里开始,看看我能得到什么。。。。非常感谢:-)MySQL有一个类似的正则表达式版本,名为REGEXP
。它还有一个名为REPLACE
的字符串替换函数。应该做的是用替换X。将列转换为正则表达式,该正则表达式匹配任何数字而不是X。