Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中嵌套的select语句-我的代码不起作用_Mysql_Nested Select - Fatal编程技术网

mysql中嵌套的select语句-我的代码不起作用

mysql中嵌套的select语句-我的代码不起作用,mysql,nested-select,Mysql,Nested Select,这是我的问题 SELECT con_serial,column2,column3 FROM (SELECT con_serial,column2,column3 FROM big_table WHERE ISNULL(contact1, '')+'#'+ISNULL(contact2, '')+'#'+ISNULL(contact3, '')+'#'+ISNULL(contact4, '')+'#'+ISNULL(contact5, '') LIKE '%' + '".$conser

这是我的问题

SELECT con_serial,column2,column3
 FROM
 (SELECT con_serial,column2,column3
 FROM big_table 
 WHERE ISNULL(contact1, '')+'#'+ISNULL(contact2, '')+'#'+ISNULL(contact3, '')+'#'+ISNULL(contact4, '')+'#'+ISNULL(contact5, '')
 LIKE '%' + '".$conserial."' + '%') AS a
 WHERE con_serial
IN('".$contact1."','".$contact2."','".$contact3."','".$contact4."','".$contact5."')   
在内部选择中,我希望在其5列Contact1…contact5中的一列中获取具有此值$conserial的行

外部选择从中选择行,其列CONU serial是变量$contact1…$contact5之一


有人知道这里出了什么问题吗?

我想where子句中的总和部分是允许的 我用两个这样的方法解决了这个问题

SELECT con_serial,,column2,column3
 FROM(SELECT con_serial,column2,column3
 FROM
  big_table
 WHERE '".$conserial."' IN(contact1,contact2,contact3,contact4,contact5)) a  
  WHERE con_serial IN('".$contact1."','".$contact2."','".$contact3."','".$contact4."','".$contact5."'

这就是我想要Tnx的地方

尽管你采用了新的配方,但仍然非常不清楚。 尽管如此,根据我的猜测,我还是会尽力给你一个答案

首先,我将重新阐述您的需求:

PHP变量中有一些值:一个$conserial和五个$contact,其中是1-5 表结构至少包含以下列:con_serial、column2、column3和five contact,其中为1-5 您希望选择的行中,这两个行都是您需要的最奇怪的部分: 至少有一个联系人列与PHP$conserial值匹配 con_serial列至少匹配一个PHP$contact值 也就是说,请注意,您不需要有两个嵌套的SELECT:您只希望每一行满足两个条件,这样就可以在WHERE子句中对它们进行AND运算

基于此,您的查询应该是:

$query = "
  SELECT con_serial, column2, column3
  FROM big_table
  WHERE con_serial IN ('$contact1', '$contact2', '$contact3', '$contact4', '$contact5')
  AND '$con_serial' IN (contact1, contact2, contact3, contact4, contact5)
";

这真是一团糟!首先,您可能将PHP与SQL混合在一起,而不在PHP上下文中。那么不清楚是$con_串行还是五个$contact1等是选择标准。最后,这里的ISNULL是什么意思,And+是什么意思?谢谢你的帮助。相信我,如果这是一团糟,我的整个项目就是一场灾难。是的,我正在使用php,查询将在php contex中运行,实际上我对mysql有点陌生,我正在使用isnull将null值替换为“'''`我想检查任何一行中的这五列中是否有任何一列包含一个特殊值$con_serial,如果是这样,就得到它们,当然,在外部选择中使用这个结果是否有更好的结果这个@cFreedIt不容易理解您到底需要什么:根据您的描述,我看到了某种矛盾。看起来:1在contactN的五列中的任意一列中搜索PHP$conserial值;2列con_序列值应与五个PHP$contactX中的任何一个匹配。这可能不是你真正想要的。请详细说明,并向我们展示:1大_表结构;2用作标准的PHP变量列表。Tnx man i更改了结构,应该早一点这样做