Intereting Posts

Как сделать Mysql Union с проверкой, существует ли строка?

OK, это немного сложно, потому что мои таблицы не ссылаются или не объединены друг с другом или не совпадают друг с другом, поэтому я не могу использовать JOIN. Я создаю форму поиска, которая будет просто соответствовать ключевому слову поиска в нескольких таблицах.

Проблема в том, что мне нужно создать ссылку на новости, в зависимости от того, из какой таблицы пришел результат, но я не могу найти крючок. Союз MySql работает отлично, за исключением того, что я не могу проверить, находятся ли данные из таблицы a или таблицы b.

here is short version SELECT i.title,i.category FROM table_a WHERE REGEXP 'news' UNION SELECT i.title,i.category FROM table_b WHERE REGEXP 'news' 

теперь моя таблица A имеет 36 строк, а таблица B имеет 34, еще одно отличие состоит в том, что таблица A имеет имя строки extra_field, которое я хотел проверить, и на основе этого переключателя моя ссылка.

php-переключатель после запроса может быть чем-то вроде

 foreach($rows as $row) : if($row->extra_field): $link = 'index.php?".$row->category.$row->title".html' else: $link = 'index.php?".$row->title".html' endif; endforeach; 

Итак, есть ли способ проверить мой UNION sql, если эта строка существует? Я знаю, как проверить, существует ли строка, но как это сделать в UNION?

Пожалуйста помоги. Спасибо!

Используя короткую версию в качестве примера, вы можете добавить дополнительный столбец к запросу:

 SELECT i.title,i.category,'a' as source FROM table_a WHERE REGEXP 'news' UNION SELECT i.title,i.category, 'b' as source FROM table_b WHERE REGEXP 'news' 

Затем в вашем коде вы можете проверить столбец «источник».