gpt4 book ai didi

mysql - 使用同一个变量查询sql查询中的多个字段

转载 作者:行者123 更新时间:2023-11-29 00:39:09 24 4
gpt4 key购买 nike

我有下面的查询,效果很好。

    SELECT  `Despatch`.`DespatchNumber` , `Despatch`.`Product` ,
`Stock`.`ProductNumber` , `Stock`.`Description` ,
`Stock`.`ProductGroup` , `Stock`.`Size` , `Stock`.`IPICODE` , `Stock`.`Fit` ,
`Stock`.`62`
FROM Stock , Despatch
WHERE `Despatch`.`DespatchNumber` = '" . $Despatch . "'
AND `Despatch`.`Product` = `Stock`.`ProductCode`

我的问题是我想扩展它,即我使用 $Despatch 的值使用 OR 函数搜索同一表中的另一列。因此,查询将查看 Despatch Number,如果没有找到匹配项,则会查看订单号,如下所示。它不起作用,我的 mysql 服务器只是在尝试运行此查询时挂起。

      SELECT  `Despatch`.`DespatchNumber` , `Despatch`.`Product` ,
`Stock`.`ProductNumber` , `Stock`.`Description` , `Stock`.`ProductGroup` , `Stock`.`Size` , `Stock`.`IPICODE` , `Stock`.`Fit` , `Stock`.`62`
FROM Stock , Despatch
WHERE `Despatch`.`DespatchNumber` = '" . $Despatch . "'
OR `Despatch`.`OrderNumber` = '" . $Despatch . "'
AND `Despatch`.`Product` = `Stock`.`ProductCode`

最佳答案

您的 OR 子句需要括号:

WHERE (`Despatch`.`DespatchNumber` = '" . $Despatch . "'   
OR `Despatch`.`OrderNumber` = '" . $Despatch . "')
AND `Despatch`.`Product` = `Stock`.`ProductCode`

我还强烈建议您在执行连接时显式使用 JOIN 关键字。这不仅是最佳实践,而且还可以防止在这种情况下发生错误。

SELECT -- ...columns...
FROM Stock AS S
JOIN Despatch AS D
ON D.Product = S.ProductCode
WHERE D.DespatchNumber = 'DN001234'
OR D.OrderNumber = 'DN001234'

关于mysql - 使用同一个变量查询sql查询中的多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13048230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com