【发布时间】:2012-10-10 14:51:05
【问题描述】:
我有一个以逗号分隔的数据存储在数据库字段中。就像在字段colors 中说的那样,有以下行。
red,blue, green
blue, white, purple, pink
yellow, khaki, maroon, orange
gray, lemon, black, brown
下一个用户有一个 html 形式的文本框,他在其中以逗号分隔的形式输入颜色。我想搜索数据库以返回与他的输入匹配的记录。例如。
如果我输入red, purple, orange,那么查询应该返回三行,因为第一行是红色,第二行是紫色,第三行是橙色。
我没有比将用户输入分解为数组并循环遍历每种颜色并搜索数据库以获得结果更容易的方法。有没有更简单的方法来做到这一点?
编辑
我知道以逗号分隔的形式存储数据不是一个好习惯,但我正在对其他程序员制作的应用程序进行更新。在这个阶段,我不能改变表结构。
谢谢
【问题讨论】:
-
您没有对数据结构进行规范化并不容易。如果你有,你现在会跳过一片雏菊。
-
@podiluska 请看我的编辑。
-
这里有一些答案(find_in_set)stackoverflow.com/questions/738133/…
-
插入/更新记录的频率是多少?