Как правильно составить OR с REPLACE в SQL?

Подскажите, пожалуйста, как правильно составить OR? Вообще не понимаю что не так.

Нужно вывести всех авторов, с которыми {X} когда-либо работал в соавторстве

SELECT authorId, ((REPLACE (authorId, 'Линус Торвальдс, ', '')) OR (REPLACE (authorId, ', Линус Торвальдс', '')) OR (REPLACE (authorId, ', Линус Торвальдс, ', ''))) FROM books WHERE authorId LIKE '%Линус Торвальдс%'


Если без OR то всё работает.

Однако могут встречаться значения "Автор Один, Линус Торвальдс" и "Автор Один, Линус Торвальдс, Автор Два".
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
Adamos
@Adamos
Имхо, есть два способа сделать это в БД правильно.
1. Нормализация. Отдельная таблица с авторами, а не дрочево с вычленением их из строчек.
2. Кесарю - кесарево. Выбирать из БД все строки, где встречается нужный автор, и разбирать их в более предназначенном для этого языке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы