PHP-код чисто в SQL - PullRequest
       0

PHP-код чисто в SQL

2 голосов
/ 16 февраля 2012

У меня есть код на 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 [] как результат запроса

Возможно ли сделать это чисто в SQL без использования PHP-кода?Я имею в виду просто сделать некоторый запрос (Tquery), который будет сравнивать значения из двух разных запросов и выходной массив значений места и слова, которые примут это утверждение if?мне это нужно, потому что дб быстрее php и у меня много строк

1 Ответ

2 голосов
/ 16 февраля 2012

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, вероятно, гораздо более эффективна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...