【发布时间】:2021-03-03 19:58:12
【问题描述】:
我有以下问题:
SELECT a.*
FROM programm a
WHERE a.traffic IN ('DE;AT;CH;')
ORDER
BY a.programmid asc
LIMIT 0,10
效果很好。
但如果我只想查询一个国家,那是不可能的:
SELECT a.*
FROM programm a
WHERE a.traffic IN ('DE;')
ORDER
BY a.programmid asc
LIMIT 0,10
数据库结构:
<pre>
programmid | traffic
------------+------
1 | DE;AT;CH;
2 | AT;
3 | CH;
4 | PL;BG;DE;
5 | AM;BG;DE;
</pre>
当我查询数据库时,
SELECT a.* FROM `programm` as a WHERE a.traffic IN ('DE;,BG;') ORDER BY a.programmid asc LIMIT 0,10
所有程序 ID 都应列在 DE、BG 处于流量中的位置。 那将是programmid 1,4,5
【问题讨论】:
-
stackoverflow.com/questions/1258743/normalization-in-mysql 解决方案不是构建 hacky 代码来适应糟糕的表设计,而是规范您的数据库,以便您可以编写干净的代码。
标签: php mysql denormalization