当我将这段 SQL 输入 PHPMyAdmin 时,它返回的结果与我期望的不符
markdown code **word in bold**
'``r
code chunk
'``
我的意图是找到华硕制造的具有 GTX GPU 或 RTX GPU 和 16GB 或 32GB 内存的笔记本电脑,然后从最接近用户输入的价格订购。
但是,当我在 PHPMyAdmin 中运行此查询时,我得到的结果包含 8GB 内存,而结果并非来自华硕等品牌。 示例
SELECT
*
FROM
`wtlaptop`
WHERE
`laptopgpu` LIKE '%GTX%'
OR
`laptopgpu` LIKE '%RTX%'
AND
`memorysize` LIKE '%16GB%'
OR
`memorysize` LIKE '%32GB%'
OR
`memorysize` LIKE '%64GB%'
AND
`laptopbrand` LIKE '%Asu%'
ORDER BY
ABS(`productprice` - 3145)
我的表结构是
3128
Intel Core i7
32GB
Nvidia GTX 1650 Ti
Windows 10 Home
HP
答案 0 :(得分:1)
你没有具体说明你的期望,但我认为你只需要围绕你的条件:
SELECT *
FROM `wtlaptop`
WHERE (`laptopgpu` LIKE '%GTX%' OR `laptopgpu` LIKE '%RTX%') AND
(`memorysize` LIKE '%16GB%' OR `memorysize` LIKE '%32GB%' OR `memorysize` LIKE '%64GB%') AND
`laptopbrand` LIKE '%Asu%'
ORDER BY ABS(`productprice` - 3145);
您也可以使用正则表达式来简化:
SELECT *
FROM `wtlaptop`
WHERE `laptopgpu` REGEXP 'GTX|RTX' AND
`memorysize` REGEXP '16GB|32GB|64GB' AND
`laptopbrand` LIKE '%Asu%'
ORDER BY ABS(`productprice` - 3145);