Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

SQL - cоединение содержимого двух полей и поиск подстроки в них

Обсуждение темы SQL - cоединение содержимого двух полей и поиск подстроки в них в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; При работе с базами данных MySQL возникла такая вот задачка (не знаю возможно ли это сделать или нет): Например, необходимо проверить наличие подстроки ...


Закрытая тема
 
Опции темы
Старый 13.04.2012, 17:50   #1
При работе с базами данных MySQL возникла такая вот задачка (не знаю возможно ли это сделать или нет):
Например, необходимо проверить наличие подстроки (keyword) в каком либо поле (field) таблицы (my_table) базы данных.
Делаем SELECT * FROM `my_table` WHERE `field` LIKE '%keyword%'; - и проблем нет!
Но задача стоит немного иная. Проблема в том, что есть два (или более) полей в базе field1 и field2 в которых необходимо искать строку. Причем делать это нужно так: нужно чтобы эти два поля были соединены в одно целое (т.е., грубо говоря, если это текстовые поля, то они сначала должны быть соединены (сконкатенированы)) и уже после этого нужно искать подстроку в этом «общем» тексте (состоящем из содержимого двух полей).
Можно было бы сделать это таким образом: одним запросом SQL получить содержимое обоих полей, записать их в две переменные (php), затем слить тексты из этих двух переменных в один (оператором «точка» канкатанация) и уже искать подстроку в этой переменной.
Т.е. запросом SQL мы выбираем два текста, а затем уже средствами php соединяем их и ищем в полученном тексте подстроку.
Но хотелось бы все это сделать средствами SQL в одном запросе. Можно ли в одном запросе соединить содержимое двух полей, и затем в результате искать нужную строку (или делать другие действия)?
 
Старый 13.04.2012, 17:50
Ссылки
Старый 13.04.2012, 18:12   #2
У тебя же текст в разных полях, надо сначало выбрать данные из этих полей, а потом уже вносить в переменные и выводить как угодно.
Приведи пример того, что ты хочешь сделать.
 
Старый 13.04.2012, 18:23   #3
Блин, знал что трудно будет объяснить.
Короче говоря, нужно сначала слить два поля в одно (соединить их содержимое), а потом с полученным результатом осуществлять какие-либо действия (например искать строку). И все это в одном запросе!
 
Старый 13.04.2012, 20:03   #4
как вариант - использовать хранимые процедуры. правда не каждый хостинг их разрешает.
 
Старый 12.07.2012, 23:14   #5
Не совсем представляю, зачем нужно именно соединять строки перед поиском, а не искать отдельно... Не могу представить пример, где это может потребоваться, чтобы искомая строка содержала конец из одного поля и начало из другого...
А сделать просто:
SELECT * FROM `table` WHERE CONCAT(`field1`, `field2`) LIKE '%keyword%';
В функцию CONCAT можно вводить сколько угодно параметров.
 
Старый 12.07.2012, 23:14
Закрытая тема


Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена содержимого по нажатию web_smile HTML, CSS, JavaScript 3 15.04.2013 14:00
фильтры css на часть содержимого катка HTML, CSS, JavaScript 3 10.05.2011 09:26
Помогите с кодировкой полей в mysql Mizantrop ASP, Perl, PHP и MySQL 3 26.01.2011 19:56
Скрытие полей Света ASP, Perl, PHP и MySQL 5 29.10.2007 15:17
Поиск повтряющего содержимого переменной Леха ASP, Perl, PHP и MySQL 5 17.04.2006 15:35


Текущее время: 06:48. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Тарифный план «Lite»
Место: 1000 Мб
Трафик: неограниченный
Панель управления
Заказать ТП «Lite»
Тарифный план «Normal»
Место: 2000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Normal»
Тарифный план «Profy»
Место: 7000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Profy»
Тарифный план «Места хватит!»
Место: 25 ГБ
Трафик: неограниченный
Поддержка SSI, ssh
Заказать ТП «Места хватит!»
Дизайнерский форум