MySQL WHERE 条件/优先条件

标签 mysql sql

这个很奇怪,我似乎无法理解。

基本上我需要根据具有覆盖的值进行搜索。因此,有 2 个列的内容基本相同。一种是自动更新,一种是手动更新。如果没有自动的就用手动的,如果没有手动的就用自动的。最后,如果两者都可用,它将使用自动除非启用“覆盖”标志(可能是第三列)。

我需要做的是基于该参数进行搜索,就好像它是一个字段一样,使用列上的一组优先级。所以这是一个 WHERE 语句示例,但我不知道使用什么语法才是正确的。

WHERE (isset(width)?(width_override?o_width:width):o_width) = {query}

最佳答案

使用IF函数。

WHERE IF(width IS NOT NULL, IF(width_override, o_width, width),
                            o_width) = {query}

关于MySQL WHERE 条件/优先条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17862168/

相关文章:

SQL Server 2008 SET QUOTED_IDENTIFIER OFF 问题

MySQL插入相同的值

MYSQL 返回选定行和之前行的数据

PHP 缺少 mysql pdo 驱动程序

mysql - SQL - SELECT ... LIMIT [X] OFFSET [Y] 不包括先前的记录

Mysql按一个字段分组,按另一个字段排序

MySQL 连接想要排除不在第二个表中的行

mysql - 使用空值作为 '' 还是 NULL 更好?

sql - 基于前几个字符的情况

sql - "Collapse"表消除空值