我需要为该php mysql查询找到正确的语法,尽管进行了搜索和反复试验,但我还是空白了。

我有一个库存表-'Stockists',我需要根据state1,state2或两者的存在从每一行中提取数据。如果仅存在state1,则提取该记录,如果它们都存在,那么我需要基于state2的记录。

SELECT * FROM `Stockists` WHERE state1 = 'vic' AND state2 IS NULL
IF state2 IS NOT NULL
THEN
SELECT * FROM `Stockists` WHERE state2 = 'vic'


我搜索并使用了很多不同的示例,但似乎没有任何用,任何建议或线索都将不胜感激。

干杯

最佳答案

select *
  from stockists
    where (state2 = 'vic') or (state1 = 'vic' and state2 is null);


试试看获取将state2设置为vic的所有库存商,以及将state1设置为vic的所有库存商,其中state2未设置。这是一个演示示例:http://sqlfiddle.com/#!9/15a08/1

它不会检索state1 ='vic​​'和state2 ='someotherstate'的记录

关于php - 如果在MySQL查询中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29536073/

10-09 03:18