这个问题在这里已经有答案了:
在数据库列中存储分隔列表真的那么糟糕吗(10个答案)
两年前关门了。
我必须写一个查询 where
子句应仅在字段值不为空时起作用,否则应获取所有记录。
我有一张table的名字
id | valid_month | name |
------+-------------+------|
1 | 1,2,3 | post1|
2 | 1,2 | post2|
3 | | post3|
4 | 2,5 | post4|
5 | | post5|
----+-------------+------+
我想问一下
select * from post where IF(valid_month != "") THEN valid_month REGEXP '[[:<:]]3[[:>:]]' END IF;
结果应该是这样的
id | valid_month | name |
------+-------------+------|
1 | 1,2,3 | post1|
3 | | post3|
5 | | post5|
----+-------------+------+
有没有办法在mysql中获得这个输出?
2条答案
按热度按时间nfg76nw01#
你可以用
CASE
也eiee3dmh2#
你可以通过逻辑推理获得这种行为
or
操作员: