Не могу разобраться в следующей теме:
Необходимо вывести имя игрока и его гильдию, фамилия которого начинается с “B” и больше одной буквы.
Если со связыванием двух таблиц путем join я разобрался, то вот с выводом именно фамилии с буквой B не очень. Подскажите как делать ?
P.s. Столбец откуда берутся данные имени, называется nickname. Пример имен в nickname: Alex B , Serena AI, Valdis Kerd.
SQL
SQL запрос (like)
в каждой избушке свои погремушки, и разные субд позволяют делать шаблоны разной степени замороченности.
в простейшем случае в шаблоне могут быть лишь % (соответствует любой последовательности символов) и _ (соответствует единичному символу).
поэтому для базы:
если же и ID=4 нас не устраивает, можно выкрутиться так:
так что, имхо, для подобных задач лучше использовать регулярки, если они, конечно, поддерживаются субд.
в простейшем случае в шаблоне могут быть лишь % (соответствует любой последовательности символов) и _ (соответствует единичному символу).
поэтому для базы:
CREATE TABLE person (ID int, nickname varchar(32));
INSERT INTO person VALUES
(1, 'Alex B'),
(2, 'Serena AI'),
(3, 'Valdis Kerd'),
(4, 'Richard B Wild'),
(5, 'Sammy Boo'),
(6, 'Emma B ');
запрос отработает так: SELECT * FROM person WHERE nickname like '% B_%';
ID nickname
4 Richard B Wild
5 Sammy Boo
6 Emma B
поскольку запись с ID=6 нам не подходит, можно обезопасить себя, поудаляв пробелы: SELECT * FROM person WHERE TRIM(nickname) like '% B_%';
ID nickname
4 Richard B Wild
5 Sammy Boo
но если в nickname напихают что-то отличное от паттерна имя-пробел-фамилия, это не спасёт.если же и ID=4 нас не устраивает, можно выкрутиться так:
SELECT * FROM person WHERE TRIM(nickname) like '% B_%'
and TRIM(nickname) not like '% B %';
ID nickname
5 Sammy Boo
но, понятное дело, и этот вариант не охватывает все случаи.так что, имхо, для подобных задач лучше использовать регулярки, если они, конечно, поддерживаются субд.
сперва собираю данные в базу необдуманно, а потом напрягаются на каждом шагу...
странно что нужно вам "фамилию", но ищете её в "nickname"
странно что нужно вам "фамилию", но ищете её в "nickname"
Андрей Марцинкевич
Это задание, не я придумал так собирать
Похожие вопросы
- Помогите написать sql запросы
- SQL-запрос Вывести идентификаторы всех владельцев комнат
- SQL запрос Найдите какой процент пользователей, зарегистрированных на сервисе бронирования
- Sql запрос создания таблицы
- Можно ли в SQL запросе опустить слово AS? Пример:
- SQL Запрос. Дублируются данные
- Помогите пожалуйста составить sql запрос
- Не очень понятен синтаксис запросов SQL
- SQL. Выводятся не все данные. 4 задача.
- Написать запрос sql