【发布时间】:2016-12-13 20:45:34
【问题描述】:
这是我的查询
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 列之一中获取具有此值 $conserial 的行(contact1...contact5)
和外部选择从中选择行,它们的列 con_serial 是变量之一 ($contact1...$contact5)
谁能看出这里出了什么问题?
【问题讨论】:
-
这真是一团糟!首先,您将 PHP(可能)与 SQL 混合,而不是在 PHP 上下文中。然后不清楚
$con_serial或五个$contact1等是否是选择标准。最后,这里的ISNULL是什么意思,#和+是什么意思? -
感谢您的帮助。相信我,如果这是一团糟,我的整个项目就是一场灾难。是的,我正在使用 php,查询将在 php contex 中运行,实际上我对 mysql 有点陌生,我正在使用 isnull() 将 null 值替换为 ` ' ` 我想检查是否有在任何行中的这五列中都包含一个特殊的值
$con_serial,如果是这样,得到它们并且当然在外部选择中使用这个结果是否有更好的实现? @cFreed -
要准确理解您的需求并不容易:按照您的描述,我发现有点矛盾。似乎:1)在
contactN五列中的任何一个中搜索PHP$conserial值; 2)con_serial列的值应与五个 PHP$contactX中的任何一个匹配。这可能不是您真正想要的。请详细说明,并向我们展示:1)big_table结构; 2) 用作标准的 PHP 变量列表。 -
Tnx man 我改变了结构应该早点这样做
标签: mysql nested-select