php - MySQL IF 语句动态更改值?

标签 php mysql if-statement

我什至不确定使用 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/

相关文章:

php - Magento 自定义模块, fatal error : Call to a member function setFormAction()

Java Android If Else Break 有问题故障排除

php - SELECT * FROM tbl 名称 WHERE name LIKE 'ask'

mysql - .net core 2.1 MVC for MySQL 数据库中的瞬时故障处理

c# - Int.tryparse 在 If 条件下无法正常工作 - 任何解释?

javascript - 如何运行基于本地存储值 bool 类型的 if/else 语句?

php - 如何在 PHP 中访问 stdClass 对象的元素

javascript - 如何从ajax获取表单ID并在symfony2的点击功能中设置它

javascript - 如何使用 react.js 计算购物车中产品的总价

mysql - 如何向 bash 字符串添加括号和单引号