SQL where 条件中的“-”运算符

问题描述 投票:0回答:2

我在 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”列的值转换为负数?

sql mysql operators
2个回答
3
投票

它是一元减运算符。以下表达式都是等价的:

  • - users.registration_status = 14
  • 0 - users.registration_status = 14
  • users.registration_status = -14

后者可能是最明显的(代码清晰度很重要!)


1
投票

是的,在将 users.registration_status 与查询中的 14 进行比较之前,它会翻转 users.registration_status 的符号

© www.soinside.com 2019 - 2024. All rights reserved.