我不知道是因为我是初学者还是因为我期望从SQL查询中获得匹配,或者即使数据根本没有意义。
问题是:
我有优先权,即是否知道位置(在这种情况下= 225)仅显示带有225的行,以及是否知道除法仅显示225 | 5行。我只想将-1作为默认值。
例如
如果location=202
和division=6
获得-1|-1
如果location=225
和division=6
获得225|-1
如果location=202
和division=3
获得-1|3
如果location=225
和division=3
获得225|3
桌子:
╔══════════╦══════════╗
║ location ║ division ║
╠══════════╬══════════╣
║ -1 ║ -1 ║
║ -1 ║ 3 ║
║ -1 ║ 5 ║
║ 225 ║ -1 ║
║ 225 ║ 3 ║
╚══════════╩══════════╝
查询:
SELECT * FROM n_comboitems
WHERE coit_item="PHOLOCOMBO2"
AND (coit_location = 225 OR coit_location = -1)
AND (coit_division = 5 OR coit_division = -1)
哪个返回
╔══════════╦══════════╗
║ location ║ division ║
╠══════════╬══════════╣
║ -1 ║ -1 ║
║ -1 ║ 5 ║
║ 225 ║ -1 ║
╚══════════╩══════════╝
但我只想要:
╔══════════╦══════════╗
║ location ║ division ║
╠══════════╬══════════╣
║ 225 ║ -1 ║
╚══════════╩══════════╝
最佳答案
尝试同时添加order by
子句和limit
子句:
SELECT * FROM n_comboitems
WHERE coit_item="PHOLOCOMBO2"
AND (coit_location = 225 OR coit_location = -1)
AND (coit_division = 5 OR coit_division = -1)
ORDER BY coit_location DESC, coit_division DESC
LIMIT 1;
降序排列会将-1推到底部,而
LIMIT 1
仅返回第一行。关于php - 选择适当的行-或获取默认行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29747509/