我在PHP中有代码,我希望它只生成像
这样的sql表格内容
word size place
small 10 home
large 18 outside
dog 11 home
cat 6 home
dog 20 outside
small 99 outside
PHP代码不是绝对正确的,但你会看到我需要的东西。
$input = array("small", "dog");
$place2 = array();
$sql1 = SELECT word,size,place FROM TAB WHERE word = input[0];
$sql2 = SELECT word,size,place FROM TAB WHERE word = input[1];
if ((($sql1['size'] - $sql2['size']) == 1) && ($sql1['place'] == $sql2['place']) ) {
$place2[] = $sql2['place'].$sql2['word'].$sql1['word'];
}
并输出$ place2 [],就像查询
的结果一样是否有可能在不使用PHP代码的情况下完全使用sql?我的意思是只做一些查询(Tquery),它将比较来自两个不同查询的值,并输出将接受if语句的地方和单词值的数组?我需要,因为db比php快,我有很多行
答案 0 :(得分:2)
PHP可能会更快/更有效,但如果你真的想要一个查询来执行它:
SELECT CONCAT(`b`.`place`, `b`.`word`, `a`.`word`) AS `output`
FROM `tab` `a`
JOIN `tab` `b` ON `b`.`word`='dog'
WHERE `a`.`word`='small'
AND `a`.`size`-`b`.`size` = 1
AND `a`.`place`=`b`.`place`
正如我所说,PHP版本可能效率更高。