匹配列值,这是逗号分隔的列值

时间:2017-06-06 14:37:20

标签: php mysql

表名中有3列用户。在 zip_codes 中,有多个带逗号分隔的邮政编码。

 id        ZIP_codes            user_email  

 1          123,785,333         a@gmail.com
 2          785,241,123          v@gmail.com

现在我有另一个表名是学生

id        ZIP_code          std_email  

 1          123              std1@gmail.com
 2          241              std2@gmail.com

student.zip_code 来自 first.php second.php ,它与 users.zip_codes <匹配/ strong>即可。现在如果 123 与其他表匹配,那么只有a@gmail.com和v@gmail.com应该来,并且应该来自241 v@gmail.com。

second.php 的代码是:

 <?php
 extract($_POST);
"SET @search = '$zip_code'";
$SQLSELECT = "SELECT * FROM users where REGEXP CONCAT('(^|,)(', REPLACE(@search, ',', '|'), ')(,|$)')";

$result_set =  mysql_query($SQLSELECT) or die(mysql_error());
while($row = mysql_fetch_array($result_set))
{
extract($row);
echo $user_email; 
}
            ?>

但它不起作用。

1 个答案:

答案 0 :(得分:0)

我通过FIND_IN_SET()解决了我的查询。

SELECT * FROM users WHERE FIND_IN_SET($ zip1,zip_codes);