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


Doing complex array queries in MySQL

我试图查询数据库,但只返回两个或一个结果。

这是我的情况。我有一个需要拆分的复合物,然后数组需要在数据库中运行,它应该只匹配数据库中的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;
?>

您可以拆分化合物,然后用,作为胶水再次内爆它,然后使用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')