在MySQL中执行复杂的数组查询

时间:2013-12-06 02:40:33

标签: php mysql sql

我正在尝试查询数据库并只返回两个结果或一个。

这是我的情况。我有一个需要拆分的化合物,然后数组需要通过数据库运行,它应该只匹配数据库中的2或1个东西,即

我有NaHCO3分裂。查询应仅匹配Na和HCO3。在数据库中我有:Na,H,C,O,CO3& HCO3。

我该怎么做? 这是我的滞后代码。

<?php
  $compound ="NaHCO3";
  $arr1 = str_split($compound);

   SELECT name, formula
   FROM elements, ions
   WHERE name= $arr1['*']
   AND formula=$arr1['*']
   RETURN 2;
?>

1 个答案:

答案 0 :(得分:2)

您可以使用,作为粘合剂拆分复合并再次内爆,然后使用IN查询 可能是这样的事情......我不确定..

<?
$compound ="NaHCO3";
  $arr1 = str_split($compound);
  foreach($arr1 as $k=>$v){
   $arr2[]="'".$v."'";
  }
  $str=implode(",",$arr2);
 $sql="SELECT name, formula
   FROM elements, ions
   WHERE name IN (".$str.")";
echo $sql;   
?>

输出

SELECT name, formula FROM elements, ions WHERE name IN ('N','a','H','C','O','3')