这是我的查询
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)
有人能看到这里有什么问题吗?
答案 0 :(得分:0)
我猜在where子句中的总和部分是坚果允许的 我用这两个IN来解决这个问题
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的任何方式;)
答案 1 :(得分:0)
尽管你的新配方,仍然非常不清楚 尽管如此,我会根据我的猜测给你一个答案......
首先,我将如何重新制定您的需求:
$conserial
和五个$contact#
#
是1-5 con_serial
,column2
,column3
和五个contact#
#
为1-5 contact#
列符合PHP $conserial
值con_serial
列至少匹配一个PHP $contact#
值那就是说,请注意,您不需要有两个嵌套SELECT
:您只希望每一行满足两个条件,因此它们可以在WHERE
子句中进行AND运算。 / p>
基于此,您的查询应为:
$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)
";