我在 MySQL 中遇到了一种相当特殊的语法,特别是以下查询中的 WHERE 条件中存在“-”符号。
SELECT
users.id
FROM
users
WHERE
users.account_status >= 3
AND users.account_status NOT IN (8 , 9)
AND - users.registration_status = 14
AND users.id IN (229);
我在here研究过这个语法?
是否可能表示“registration_status”列的值转换为负数?
它是一元减运算符。以下表达式都是等价的:
- users.registration_status = 14
0 - users.registration_status = 14
users.registration_status = -14
后者可能是最明显的(代码清晰度很重要!)
是的,在将 users.registration_status 与查询中的 14 进行比较之前,它会翻转 users.registration_status 的符号