Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/29: Рейтинг темы: голосов - 29, средняя оценка - 5.00
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,787

Универсальный запрос с конструкцией LIKE

15.01.2013, 19:17. Показов 5443. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Согласно мануалу, указание одного знака нижнего подчеркивания справа от шаблона означает один неопределенный знак справа, а указание процентов означает любое количество знаков справа.

Вместе с тем, указание \% соответствует конкретному знаку процента, а указание \_ соответствует одному символу нижнего подчеркивания.

Но как поступить в случае, когда шаблон формируется скриптом и может содержать внутри себя и знак процента, и знак подчеркивания?

Например, такой код:

SQL
1
SELECT `adres_grupp`, `n_tov_grupp` FROM `grupp` WHERE `adres_grupp` LIKE '$rod_grupp%'
Здесь необходимо, что бы не учитывалось любое количество знаков справа. Этот код будет прекрасно работать, когда

PHP
1
2
$rod_grupp =777;
$rod_grupp =555;
А что будет, когда

PHP
1
2
$rod_grupp =777%;
$rod_grupp =555_”;
Ведь в этих случаях получится запрос

SQL
1
2
LIKE 777%%
LIKE 555_%
Как сделать, чтобы в обоих случаях находилось «777% и более» и «555_77»?

Кстати, возможен еще вариант, когда проценты и подчеркивания находятся внутри шаблона. Например,

PHP
1
2
$rod_grupp =77%7%;
$rod_grupp =55_5_”;
Как работать с такими шаблонами?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.01.2013, 19:17
Ответы с готовыми решениями:

Как правильно написать запрос с конструкцией LIKE ?
Пишу программу на Delphi 7, использую БД Access. Как правильно составить запрос с конструкцией LIKE ? fMain.Query1.Close; ...

7.7 Универсальный Запрос
Добрый день! Подскажите, возможно ли построить запрос, который бы обрабатывал не конкретный вид справочника, а выбранный пользователем...

Универсальный SQL запрос
Доброго дня всем! Есть таблицы в базе SQL 1)ЧетвертьМП2 2)ЧетверьМП3 3)ЧетвертьМП4 4) ... Создаю запрос подобного плана ...

3
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
15.01.2013, 19:46
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
mysql> INSERT INTO test(id ,text) VALUES (1,'bam');
Query OK, 1 ROW affected (0.00 sec)
 
mysql> INSERT INTO test(id ,text) VALUES (2,'bam%');
Query OK, 1 ROW affected (0.00 sec)
 
mysql> INSERT INTO test(id ,text) VALUES (3,'bam%3');
Query OK, 1 ROW affected (0.00 sec)
 
mysql> SELECT * FROM test WHERE text LIKE 'bam%';
+----+-------+
| id | text  |
+----+-------+
|  1 | bam   |
|  2 | bam%  |
|  3 | bam%3 |
+----+-------+
3 ROWS IN SET (0.00 sec)
 
mysql> SELECT * FROM test WHERE text LIKE 'bam%%';
+----+-------+
| id | text  |
+----+-------+
|  1 | bam   |
|  2 | bam%  |
|  3 | bam%3 |
+----+-------+
3 ROWS IN SET (0.00 sec)
 
mysql> SELECT * FROM test WHERE text LIKE 'bam\%%';
+----+-------+
| id | text  |
+----+-------+
|  2 | bam%  |
|  3 | bam%3 |
+----+-------+
2 ROWS IN SET (0.00 sec)
экранирование спасает мир в очередной раз
1
156 / 20 / 5
Регистрация: 21.02.2009
Сообщений: 2,787
15.01.2013, 21:13  [ТС]
То есть, проблему можно решить так:

PHP
1
2
$rod_grupp = str_replace('%', '\%', $rod_grupp);
$rod_grupp = str_replace('_', '_%', $rod_grupp);
Такое решение корректно?
(Кодировка UTF-8)
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
16.01.2013, 11:51
PHP
1
addcslashes($text, '%_');
проэкранирует эти символы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.01.2013, 11:51
Помогаю со студенческими работами здесь

Универсальный указатель или универсальный скалярный тип
Здравствуйте! Помогите, пожалуйста написать программу: требуется написать универсальный скалярный тип данных без использования шаблонов....

Проблема с конструкцией WHERE
Добрый день! Необходимо произвести выборку при помощи запроса (режим SQL) из трех таблиц с двумя условиями. А именно: вывести...

Поиск по БД с конструкцией LIKE %@Param1%
Доброго всем утра! Вводная: Visual Studio 2013 FireBird 2.5 Столкнулся с такой проблемой: Хочу организовать поиск по бд,...

Задачка с конструкцией switch
Помогите разобраться с небольшой задачкой очень начинающему студенту: "Необходимо запросить у пользователя значение число от 1 до 10 через...

На могу разобраться с конструкцией
Тут топик вчера был https://www.cyberforum.ru/powershell/thread2552092.html Там использована конструкция которую я раньше не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru