问题
SELECT field1 FROM table1 WHERE field1 >= 4006 AND field1 < ( SELECT field1 FROM table WHERE field1 > 4006 AND field2 = false ORDER BY field1 LIMIT 1 )
i want the second condition (AND field1 <
) to be ignore if the inner select returned no record.
Related to this topic
回答1:
Something like (untested!):
SELECT field1 FROM table1
WHERE field1 >= 4006
AND (field1 < (
SELECT field1
FROM table
WHERE field1 > 4006
AND field2 = false
ORDER BY field1
LIMIT 1
)
OR
NOT EXISTS (
SELECT field1
FROM table
WHERE field1 > 4006
AND field2 = false
ORDER BY field1
)
)
来源:https://stackoverflow.com/questions/5540416/how-to-ignore-a-condition-in-where-clause