Where IF条款中的MySQL IF条件

Jin*_*ngs 4 mysql if-statement where-clause

是否有可能通过IF条件决定哪个条款我想选择.

就像是:

IF(DATE_FORMAT(DATE(akDate), '%a')='SAT', USE WHERECLAUSE1, USE WHERECLAUSE2)
Run Code Online (Sandbox Code Playgroud)

任何人都有一个片段或东西给我?

在先进的Jings感谢

Tad*_*eck 8

在这种情况下,您仍然可以使用相当常见的WHERE语句编写,例如:

... WHERE
(
    (DATE_FORMAT(DATE(akDate), '%a') = 'SAT')
    AND
    (WHERECLAUSE1)
)
OR
(
    (DATE_FORMAT(DATE(akDate), '%a') != 'SAT')
    AND
    (WHERECLAUSE2)
)
Run Code Online (Sandbox Code Playgroud)

在那里,当然,你应该更换WHERECLAUSE1,并WHERECLAUSE2在适当的情况.


bez*_*max 5

很简单,你应该阅读布尔代数.在你的情况下,我们走了:

A = WhereClause1
B = WhereClause2
X = Choice
Run Code Online (Sandbox Code Playgroud)

您需要选择带X && AOR行的行!X && B.所以基本上你的表达方式是:(X && A) || (!X && B).这导致:

(
    (Choice AND WhereClause1) 
    OR 
    ((NOT Choice) AND WhereClause2)
)
Run Code Online (Sandbox Code Playgroud)