mysql从一个表中查询多个参数?
好的,我有一个mysql查询,我想在表1中搜索这两个参数mysql从一个表中查询多个参数?,mysql,search,select,Mysql,Search,Select,好的,我有一个mysql查询,我想在表1中搜索这两个参数 我将尝试用“php”来展示这个想法 我想查询显示第一个和第二个参数…(两者都匹配) 我希望你能理解我想说的话 好的,这是答案 mysql查询: SELECT table_1 . * , table_2_params . * FROM table_1, table_2_params WHERE table_1.pamat_kat_sad = '756' AND table_1.preces_id = table
我将尝试用“php”来展示这个想法 我想查询显示第一个和第二个参数…(两者都匹配)
我希望你能理解我想说的话
好的,这是答案 mysql查询:
SELECT table_1 . * , table_2_params . *
FROM table_1, table_2_params
WHERE table_1.pamat_kat_sad = '756'
AND table_1.preces_id = table_2_params.preces_id
AND (
(
table_2_params.params_id =124
AND table_2_params.nosaukums LIKE "%EXTEC (Sandvik)%"
)
AND (
table_2_params.params_id =126
AND table_2_params.nosaukums
BETWEEN "2010"
AND "2012"
)
)
ORDER BY table_1.preces_id DESC
问题可能是表\u 2_params.nosaukums
类型是longtext
如果我只选择使用
AND (
table_2_params.params_id =126
AND table_2_params.nosaukums
BETWEEN "2010"
AND "2012"
)
(
table_2_params.params_id =124
AND table_2_params.nosaukums LIKE "%EXTEC (Sandvik)%"
)
它显示正确的年份。。。
如果我只选择使用
AND (
table_2_params.params_id =126
AND table_2_params.nosaukums
BETWEEN "2010"
AND "2012"
)
(
table_2_params.params_id =124
AND table_2_params.nosaukums LIKE "%EXTEC (Sandvik)%"
)
它还显示正确的值
但是我不能让他们一起工作
请帮帮我
谢谢大家! 问题在于:
AND (
(
table_2_params.params_id =124 #remove this check
AND table_2_params.nosaukums LIKE "%EXTEC (Sandvik)%"
)
AND (
table_2_params.params_id =126 #or remove this check
AND table_2_params.nosaukums
BETWEEN "2010"
AND "2012"
)
)
您尝试比较参数id是否同时为124和126。那是行不通的。删除其中一个比较,您的查询应该可以工作!:) 如果需要两组条件,只需使用
或。您还应该注意,表之间的联接应该使用(内部|左)联接执行:
SELECT
table_1.*
, table_2_params.*
FROM
table_1
INNER JOIN table_2_params
ON table_1.preces_id = table_2_params.preces_id
WHERE
table_1.pamat_kat_sad = '756'
AND
(
(
table_2_params.params_id =124
AND table_2_params.nosaukums LIKE '%EXTEC (Sandvik)%'
)
OR
(
table_2_params.params_id =126
AND table_2_params.nosaukums BETWEEN '2010' AND '2012'
)
)
ORDER BY
table_1.preces_id DESC
最后,您的查询可能会执行得很差,因为mysql将无法使用任何带有和表\u 2_params.nosakums的索引,如“%EXTEC(Sandvik)%”
,但我希望这两组条件都匹配。。。它应该搜索1和2。。。这两个参数,而不仅仅是其中一个……如果您想要1和2,您将始终有一个空响应,因为table_2_params.params_id=124
和table_2_params.params_id=126
不能同时为真。另一方面,如果你想要条件的结合,那就是我所做的。