我有以下表格结构。根据请求的类型,我应该能够选择与值匹配的右列。

| resource_id | result | request          |
|             | 15127  | /campaign/add    |
|  15127      |        | /campaign/modify |

例如:
如果请求类似于/campaign/add,则应将结果与用户发送的号码进行比较,否则应选择资源id。
从程序上来说我可以说
if(request.equals())
     fetch values from database where resource_id = 15127
else
     fetch values from database where resource_id = 15127

现在我需要用数据库做同样的事情。

最佳答案

您可以使用CASE表达式来执行此操作:

select *
from the_table
where case
        when request = '/campaign/add' then result
        when request = '/campaign/modify' then resource_id
      end = number_sent_by_the_user

关于sql - 有什么办法可以让我在where条件下拥有if-else之类的功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42368115/

10-11 16:50