PHP代码纯粹在sql中

时间:2012-02-15 22:21:38

标签: php sql tsql

我在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快,我有很多行

1 个答案:

答案 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版本可能效率更高。