Php 如何使用SELECT获取具有IN和EQUAL命令的行?
我有一个mysql表,如下所示: 我正在尝试获取Php 如何使用SELECT获取具有IN和EQUAL命令的行?,php,mysql,sql,select,union,Php,Mysql,Sql,Select,Union,我有一个mysql表,如下所示: 我正在尝试获取nid值的列表,其中tid是19以及53、16或89中的任何值。根据当前表,我希望查询返回10,即=19(第4行)和(53,16,89)(最后一行) 我可以通过以下两个单独的查询得到: SELECT nid FROM {term_node} WHERE tid IN (53,16,89) SELECT nid FROM {term_node} WHERE tid = 19 (术语_节点是屏幕截图中的表格)。我在这个应用程序中使用PHP,因此我
nid
值的列表,其中tid
是19
以及53、16或89
中的任何值。根据当前表,我希望查询返回10
,即=19
(第4行)和(53,16,89)
(最后一行)
我可以通过以下两个单独的查询得到:
SELECT nid FROM {term_node} WHERE tid IN (53,16,89)
SELECT nid FROM {term_node} WHERE tid = 19
(术语_节点是屏幕截图中的表格)。我在这个应用程序中使用PHP,因此我可以组合这两个查询的结果,以获得所需的结果(即10)。但是我认为有一种方法可以从一个数据库查询中得到这个结果
我读过关于工会的书,但老实说,我不知道如何利用它。
我希望我清楚地回答了这个问题,并提前向您表示感谢 A
UNION
在这里帮不了你。你想要的是一个十字路口。有些数据库有一个关键字可以满足您的需要,但不幸的是,MySQL没有
通过使用内部联接,您可以获得所需的:
SELECT DISTINCT TN1.nid
FROM term_node AS TN1
JOIN term_node AS TN2
ON TN1.nid = TN2.nid
AND TN2.tid = 19
WHERE TN1.tid IN (53, 16, 89)
在线查看它的工作情况:A
UNION
在这里帮不了你。你想要的是一个十字路口。有些数据库有一个关键字可以满足您的需要,但不幸的是,MySQL没有
通过使用内部联接,您可以获得所需的:
SELECT DISTINCT TN1.nid
FROM term_node AS TN1
JOIN term_node AS TN2
ON TN1.nid = TN2.nid
AND TN2.tid = 19
WHERE TN1.tid IN (53, 16, 89)
在线查看它的工作情况:您不需要任何联合,只需在其中添加所有tid即可轻松完成 试试这个
SELECT nid FROM {term_node} WHERE tid IN (53,16,89, 19)
您不需要任何联合,这可以通过在WHERE中添加所有tid轻松实现 试试这个
SELECT nid FROM {term_node} WHERE tid IN (53,16,89, 19)
谢谢你的回答,莫耶德。但我需要得到nid的列表,其中nid等于19,并且在(53,16,89)中。再次感谢。谢谢你的回答,莫耶德。但我需要得到nid的列表,其中nid等于19,并且在(53,16,89)中。再次感谢。