Home  >  Article  >  Backend Development  >  PHP怎么查询一个字符串和一个数组字段里的值匹配的SQL查询

PHP怎么查询一个字符串和一个数组字段里的值匹配的SQL查询

WBOY
WBOYOriginal
2016-06-13 13:12:45923browse

PHP如何查询一个字符串和一个数组字段里的值匹配的SQL查询
如果是直接查询 pt=$rpt 的记录是这样
$sql = "SELECT * FROM 'user' where pt = {$rpt}";

现在 pt 这个字段是个数组,比如有3条记录分别为

ID PT
1 aaaaa,bbbbb,ccccc,ddddd
2 www,zzz,vvv,qqq
3 ooo,pppp,lllll,ddd

现在假如 rpt=ddd ,我想查出 PT 里有 ddd 的记录,那么应该是ID为 3 的那条记录,即完全匹配的。而不是1,和3两条记录。

请问这个SQL该怎么写 ?


------解决方案--------------------
','+pt+',' like '%,$rpt,%'
------解决方案--------------------
... where find_in_set('$rpt', pt)
------解决方案--------------------
不知道对不对 。。
LZ试试?

PHP code
/* 根据楼主数据内容
 * 应该都是用某个特定分隔符分开的
 */
$sql = "SELECT * FROM 'user' where pt = {$rpt}";
$result = mysql_query($sql);
   while($row = mysql_fetch_array($result))
{
  $arr = explode(',',$row['PT'])
  foreach($arr as $v)
  {
   if($v == {$rpt})
   {
    echo $v;
   }
  }
}
<br><font color="#e78608">------解决方案--------------------</font><br>
探讨

引用:
... where find_in_set('$rpt', pt)

这样不对吧,那只要包含 rpt 的都匹配出来了
我是想查出完全匹配的
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn