我必须编写一个查询,其中where
子句仅在字段值不为空时才起作用,否则应该提取所有记录。
我有一个表名帖子
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中获得此输出吗?
答案 0 :(得分:1)
您可以使用逻辑getActivity()
.getWindow()
.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
运算符获得此行为:
or
答案 1 :(得分:0)
您也可以使用CASE
SELECT *
FROM post
WHERE (
CASE WHEN IFNULL(valid_month,'') != '' THEN
valid_month REGEXP '[[:<:]]3[[:>:]]'
ELSE 1 = 1
END);