gpt4 book ai didi

php - MySQL:where(如果存在除 0 之外的值 - 选择值;否则,选择 0)

转载 作者:行者123 更新时间:2023-11-29 10:31:08 26 4
gpt4 key购买 nike

在 mysql 的 where 子句中,“where userID = SOME_VALUE;如果未找到 SOME_VALUE - 选择 0”。

怎么做?

我尝试了条件子选择,它有效,但相当复杂:

    "SELECT * FROM table_descriptors
WHERE
tTable = :table_obj_table
AND approvalTable = :approval_table
AND (
CASE WHEN
IFNULL(( FIND_IN_SET( :user_id2,
( SELECT GROUP_CONCAT(userID) FROM table_descriptors
WHERE tTable = :table_obj_table2
AND approvalTable = :approval_table2
) ) ), 0) = 0
THEN userId = '0'
ELSE userId = :user_id
END

) LIMIT 1";

子选择 group_concats 用户 id,如果在集合中找不到用户 id - 选择 userId = 0。否则,选择当前用户 id。 IFNULL 将 NULL 转换为 0,以防万一。

它可以工作,但是还有其他没有“硬”子选择的“简单”场景吗?

最佳答案

如果我理解正确的话,当用户 id 不存在时,您需要用户 id 0。如果是这样,您可以使用更简单的查询:

SELECT td.*
FROM table_descriptors td
WHERE td.tTable = :table_obj_table AND
td.approvalTable = :approval_table AND
td.userId IN (0, :user_id)
ORDER BY (td.userId = 0) DESC
LIMIT 1;

关于php - MySQL:where(如果存在除 0 之外的值 - 选择值;否则,选择 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47391804/

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