gpt4 book ai didi

mysql - 在 MySQL select 查询中,检查字符串或在 where 子句中检查 true?

转载 作者:可可西里 更新时间:2023-11-01 07:08:45 25 4
gpt4 key购买 nike

考虑下表:

SELECT id, Bill_Freq, Paid_From, Paid_To, Paid_Dt, rev_code FROM psr_20160708091408;

enter image description here

要求是获取 rev_code 填充字符串 **SUM** 的行。我还注意到,对于 rev_code 填充为 **SUM** 的每一行,其 Bill_Freq 既不会为 null 也不会为零。

所以我写了两个查询来获取 id 最低的行

where子句中基于字符串查询的查询:

select
min(id) as head_id,
bill_freq,
Paid_From,
Paid_To,
Paid_Dt
from
`psr_20160708091408` where rev_code = "**SUM**";

根据真实条件查询:

select
min(id) as head_id,
bill_freq,
Paid_From,
Paid_To,
Paid_Dt
from
`psr_20160708091408` where bill_freq;

我还没有看到有人用过第二种,想知道它的可靠性和故障情况。

最佳答案

如果“第二类”是指 where没有明确条件的子句,那么您有充分的理由看不到它。

SQL 标准——以及大多数数据库——需要在 where 中有明确的条件。 . MySQL 允许您使用简写,但它实际上意味着:

where not billing_freq <=> 0

或等同于:

where billing_freq <> 0 or billing_freq is null

(<=> 是 null 安全比较运算符。

您的查询中更重要的问题是 min() .我猜你真的想要这个:

select p.*
from psr_20160708091408 p
where rev_code = '**SUM**'
order by id
limit 1;

此外,您应该使用单引号作为字符串分隔符。这是 ANSI 标准,几乎没有任何理由使用双引号。

关于mysql - 在 MySQL select 查询中,检查字符串或在 where 子句中检查 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38264404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com