作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我创建了一个像这样的表:
CREATE TABLE stuff(
a1 TEXT,
a2 TEXT,
. . .
an TEXT,
data TEXT
);
SELECT
查询:
SELECT data FROM stuff WHERE
a1="..." and a2="..." and . . . and an="..."
a
值。
a
具有一些我认为默认值的值。
a
使用一些默认值,而这些默认值未明确限制在
where
子句中?例如,如果我不在
a1="b"
之后写
where
,我只会得到
a1
等于
"b"
的行,而不是任何值,但是如果我写
a1="c"
,我会得到那些。
a
的默认值都相同。
最佳答案
有没有一种方法可以向表或查询中添加某种语句
将使用一些默认值,因为默认值未明确
约束在where子句中?
简短答案:不可以。
根据您在这里说的话:
举例来说,如果我不在后面写a1 =“ b”
我认为您可能经常运行此查询,甚至可能是手动运行,并且您希望传递一些不同的值。如果确实如此,则可以传入参数并使用一些变量来处理。
您可以做的是在该CASE
中有一个WHERE
语句来提供帮助。考虑以下:
SELECT *
FROM
table
WHERE
CASE
WHEN %s IS NOT NULL
THEN a1 = %s
ELSE a1 = 'b'
END
[AND/OR] <other constraints here>
IS NOT NULL
,可以使用其他值来执行其他操作。由你决定。
%s
是
NOT NULL
或合法值,那么
ifnull()
可以替代此case语句。下面的例子:
WHERE
a1 = ifnull(%s, 'b')
关于sql - 为特定列设置WHERE子句的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54726650/
我是一名优秀的程序员,十分优秀!