|
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, 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 можно вводить сколько угодно параметров. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Замена содержимого по нажатию | 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 |
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|