Подскажите как сделать запрос в БД, чтобы выбрать только такие записи, в которых пользователь имеет определённый пол?
Т.е. у меня есть таблица users
, в которой есть поле name
, содержащее информацию о ФИО пользователя. Кроме того у меня есть список всех мужских имён (в общем случае только нужный мне список имен, типа Андей,Иван,Пётр
)
С одной стороны запрос можно было бы сделать так:
select name
from users
where find_in_set(name, "андрей,иван,пётр")>0
Но проблема в том, что в name
содержится именно ФИО, т.е. несколько слов.
Подскажите как корректно решить данную задачу?
Есть же оператор IN
..WHERE `name` IN ('name1', 'name2', 'name3')
https://www.w3schools.com/Sql/sql_in.asp
попробуйте (перечислить мужские имена) так:
SELECT * FROM `users` WHERE name REGEXP "Василий |Иван |Евгений " = 1
да функции для работы с строками типа SUBSTRING_INDEX будут быстрее, но и кода писать больше (если запросы будут постоянные то лучше наверное с строковыми функциями, а если не частые и не много данных то можно и регулярку оставить)
По идее, если считать, что большая часть записей имеет вид Фамилия Имя
, то можно сделать такой запрос:
select name
from inventor
where find_in_set(SUBSTRING_INDEX(name, ' ', -1), "Абрам,Аваз,Аввакум,Август,Августин,Авдей,Авраам,Автандил,Агап,Агафон,Аггей,Адам,Адис,Адольф,Адриан,Азамат,Айдар,Айнур,Айрат,Аким,Алан,Алей,Александр,Алексей,Али,Альберт,Альфред,Амадей,Амадеус,Амаяк,Амвросий,Ананий,Анастасий,Анатолий,Анвар,Ангел,Андоим,Андрей,Аникита,Антон,Арам,Арий,Аристарх,Аркадий,Арман,Арно,Арнольд,Арон,Арсен,Арсений,Арслан,Артем,Артемий,Артур,Архип,Аскар,Аскольд,Аслан,Афанасий,Ахмет,Ашот,Бальтазар,Бежен,Бенедикт,Берек,Бернард,Бертран,Богдан,Болеслав,Борис,Бронислав,Булат,Вадим,Валентин,Валерий,Вальтер,Варфоломей,Василий,Вацлав,Велизар,Венедикт,Вениамин,Викентий,Виктор,Вилли,Вильгельм,Виссарион,Виталий,Витольд,Владимир,Владислав,Владлен,Володар,Вольдемар,Всеволод,Вячеслав,Гавриил,Галактион,Гарри,Гастон,Гаяс,Гевор,Геннадий,Генрих,Георгий,Геракл,Геральд,Герасим,Герман,Глеб,Гордей,Гордон,Горислав,Градимир,Григорий,Гурий,Густав,Давид,Дамир,Даниил,Даниэль,Данияр,Дарий,Дементий,Демид,Демосфен,Демьян,Денис,Джамал,Джордан,Дмитрий,Добрыня,Дональд,Донат,Дорофей,Евгений,Евграф,Евдоким,Евсевий,Евсей,Евстафий,Егор,Елеазар,Елисей,Емельян,Еремей,Ермолай,Ерофей,Ефим,Ефрем,Жан,Ждан,Жорж,Захар,Зиновий,Ибрагим,Иван,Игнатий,Игорь,Илларион,Ильдар,Ильнар,Ильнур,Илья,Ильяс,Иннокентий,Иоанн,Иосиф,Ипполит,Искандер,Ислам,Камиль,Карим,Карл,Кирилл,Клим,Кондрат,Константин,Корней,Кузьма,Лавр,Лаврентий,Лев,Леон,Леонид,Леонтий,Леопольд,Лука,Лукьян,Любим,Макар,Максим,Максимилиан,Марат,Марк,Марсель,Мартин,Матвей,Мирон,Мирослав,Митрофан,Михаил,Михей,Мишель,Мстислав,Мурат,Муслим,Назар,Назарий,Наиль,Натан,Наум,Нестор,Никанор,Никита,Никифор,Николай,Никон,Нифонт,Норман,Овидий,Олан,Олег,Олесь,Онисим,Орест,Осип,Оскар,Павел,Петр,Платон,Прохор,Равиль,Радик,Радмир,Радомир,Раду,Рамазан,Рамиль,Ратибор,Ратмир,Рафаэль,Рахим,Рашид,Ринат,Ричард,Роберт,Родион,Ролан,Роман,Ростислав,Рудольф,Руслан,Рустам,Сабир,Савва,Савелий,Салим,Самвел,Самсон,Святослав,Севастьян,Семён,Серафим,Сергей,Соломон,Спартак,Спиридон,Станислав,Степан,Стефан,Сулейман,Султан,Тагир,Тамерлан,Тарас,Теодор,Тигран,Тимофей,Тимур,Тихон,Трофим,Умар,Устин,Фаддей,Фарид,Федор,Федот,Феликс,Феодосий,Фердинанд,Фидель,Филимон,Филипп,Флор,Флорентий,Фома,Франц,Фридрих,Фуад,Харитон,Хасан,Христиан,Христос,Христофор,Шамиль,Эдвард,Эдгар,Эдуард,Эльдар,Эмиль,Эмин,Эмир,Эммануил,Эрик,Эрнест,Юлиан,Юлий,Юрий,Юсуф,Юхим,Яким,Яков,Ян,Януарий,Яромир,Ярослав,Ясон")
А все остальное прошерстить руками, но так хотелось бы универсальный метод, поскольку если записей не в нужном формате много, то ручная правка будет очень ресурсоемкой
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Доброе время суток, пытаюсь получить значение с таблицы doctor_to_category (структура: doctor_category_id | doctor_id | category_id)
Мне надо актуализировать базу данныхУ меня есть какой-то набор значений, к примеру:
Хочу сделать при наведении на елемент, что бы правее появлялись несколько похожих елементов и пока я веду указатель мыши к появившимся елементам...