【发布时间】:2013-12-15 20:48:31
【问题描述】:
目前我们有以下组合不同的数据,即一个用逗号分隔,一个没有逗号分隔在同一张表中。
#1
id | values
------------
1 | 1,2,3
2 | 4,5,6
3 | 7,8,9
4 | 1
5 | 2
6 | 3
7 | 4
8 | 5
假设我想从表中搜索值1 并计算它。查询这种数据结构的最佳方式是什么?是否使用:
WHERE value =WHERE value LIKEWHERE value IN
或者我是否需要更改我的数据库并让所有值都采用相同的格式?
我们将不胜感激任何有关最佳做法的帮助或建议。
【问题讨论】:
-
WHERE with "="和WHERE IN比WHERE with "LIKE"快快 -
还记得像 1 一样会匹配 "1,11,12,13,14,15,etcetc"
-
@Dave:有一些方法可以匹配正确的值,但是太丑了:stackoverflow.com/a/18657144/1682509
-
带有或开关的子点赞是解决类似问题的可怕解决方案。正如 Juergen 所说,将数据标准化为内容表和索引表要好得多
标签: php mysql database database-design laravel-4