查询用户变量列表

时间:2017-05-23 13:46:39

标签: mysql database variables user-variables

我有以下问题: 我有一个表table1,其中有多列col1col2

+------+------+  
| col1 | col2 |    
+------+------+  
|  1   |  4   |  
|  2   |  4   |  
|  3   |  4   |  
|  4   |  5   |  
+------+------+

现在我需要所有条目col1 - 我在col2中使用四个输入的条目:

SELECT @col2fours := col1 FROM table1 WHERE col2 = 4;

现在我有一个table2,我想设置col3@col2fours中存储的值之一的行。为此,我使用:

SELECT * ID FROM table2 WHERE col3 IN @col2fours; 

这不起作用。我已经尝试=having而不是in以及使用Group_concat。到目前为止,对我来说没有任何作用 我想直接在mySQL中执行此操作,因为数据库位于服务器上,我希望尽可能减少对数据库的访问。真正的问题涉及的表多于2;)。 感谢任何意见,谢谢。

2 个答案:

答案 0 :(得分:1)

你可以直接使用这样的子查询

SELECT * FROM table2 WHERE col3 IN (SELECT col1 FROM table1 WHERE col2 = 4); 

答案 1 :(得分:1)

这种方法是不行的,因为在MySQL中没有数组数据类型,因此变量一次只能容纳1个值。

只需使用子查询或联接即可达到预期效果:

SELECT * FROM table2 WHERE col3 IN (SELECT col1 FROM table1 WHERE col2 = 4)

SELECT table2.* FROM table2
INNER JOIN table1 ON table2.col3=table1.col1
WHERE table1.col2 = 4