我有mysql,我想检查一个值是否在数组中,如果值= x,如果不是值= y

时间:2017-01-25 15:15:11

标签: php mysql

以下是样本:

SELECT toys.name, model.name
FROM model, toys

LEFT JOIN model
ON toys.model = model.name

WHERE model.name IN (robots,cops,trucks) toys.price = 100 or toys.price = 10

如果我在列表中找到玩具,我想要玩具。价格= 100其他玩具。价格= 10

2 个答案:

答案 0 :(得分:0)

尝试使用此查询:

SELECT `toys`.`name`, `model`.`name`, IF (`model`.`name` IN ('robots', 'cops', 'truck'), 100, 10) AS price
FROM `toys`

LEFT JOIN `model`
ON `toys`.`model` = `model`.`name`

首先:我在查询中使用了引号和反引号 You can read the reason on this StackOverflow post
一直使用它们!

其次:如果您加入,from中不需要有2个表。

第三,可以使用if功能解决您想要的解决方案:
 如果型号名称是这三个,则价格为100,否则为10。

答案 1 :(得分:0)

您可以使用括号 OR 来实现。并且您必须在模型名称中使用引号,因为它们是字符串。这是一个示例查询

SELECT toys.name, model.name
FROM toys
LEFT JOIN model
ON toys.model = model.name
WHERE (model.name IN ('robots','cops','trucks') AND toys.price = 100) OR toys.price = 10