我正在使用一个包含三列的表格(ID | NOTE |TAG)
ID-主键
注意-一些事情
TAG-包含用空格分隔的值
想象一下 id-1 包含 TAG- 计算机 javaScript java forton 手机
并且 id-2 包含标签-computer java forton c++ android
当使用通配符搜索位于字符串中间的术语java时,SQLITE还会显示包含javascript的行
我的查询
"LIKE '%"+ "java"+ "%'";
如果在内部任意位置找到单词 java,则显示行(即,它显示 java 以及javaScript以及Scriptinjava
如何让它只显示java ??
最佳答案
有时,我们会被其他人糟糕的设计决策所困扰。幸运的是,大多数人都知道将列表存储在字符串中是一个坏主意。因此,他们使用正确的 SQL 结构,即每个列表项一行的表。
但是,我们被其他人的错误决定所困,无法修复底层数据结构,可以使用 SQL 来做你想做的事情。在 MySQL 中,您可以将其表示为:
WHERE concat(' ', tags, ' ') LIKE '% '" + "java" + "' %'
(我假设 +
是您正在使用的应用程序语言中的字符串连接运算符。)
关于mysql - 如何使通配符考虑之间的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31093364/