我什至不确定使用 MySQL 是否完全可行,但我希望如此。
好的,我有了这个 SQL 命令
SELECT * FROM table WHERE $WhereCondition ORDER BY ListStyle
As an example of the data in the ListStyle I might have
2000 3000 3700 3800
我希望做的是在 SQL 中使用某种 if 语句,这将允许我检查结果行中的其他字段,以便我可以在页面中使用 ListStyle 的值之前更改它适本地排序。
例如,我有字段 a、b 和 c。现在,如果 a 和 b 不为空且 c = 100 且 ListStyle = 3700,我想将 ListStyle 的值更改为 3699,这样当我打印出结果循环时,匹配条件 ( a != '', b != '', c = 100 and ListStyle = 3700)
将显示在 ListStyle 为 3700 的行上方
我不能简单地编辑数据库中的数据,即使那是一个简单的解决方案。数据必须保持原样。
我最初尝试在 php 中执行此操作。虽然使用 if 语句更改 ListStyle 的值很容易,但我不知道有什么简单的方法可以实际排序我的结果,而无需将所有内容都粘贴到数组中然后对其进行排序。我真的不想这样做,因为这意味着要重新编写大量代码,这就是为什么我希望这一切都可以在 MySQL 中完成。
有人可以帮忙吗?
最佳答案
尝试类似的东西:
SELECT * FROM table_name WHERE $WhereCondition ORDER BY CASE
WHEN ( a = 0, b = 0, c = 100 and ListStyle = 3700) THEN 1
WHEN ( a = 10, b = 20, c = 200 and ListStyle = 3400) THEN 2
ELSE 10
END
关于php - MySQL IF 语句动态更改值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8802063/