У меня проблемы с фильтрацией информации из базы данных на моем веб-сайте. У меня есть две таблицы, база данных оборудования equipment_database
и QR-коды, связанные со спецификацией c оборудования qr_links
. Поэтому я использую функцию поиска для фильтрации данных с помощью оператора LIKE
. В случаях, когда выбраны все записи, я бы использовал %%
, а при указании c поиск частей будет %search_pattern%
. Проблема в том, что не у всего оборудования есть соответствующий qr-код. Поэтому при использовании оператора LIKE
он не возвращает строки со значениями NULL и возвращает только записи со связанным qr-кодом. Поиск по qr-коду не является обязательным, и все записи с qr-кодами или без них должны быть возвращены. Вот пример запроса MySQL:
SELECT equipment_database.equipment_id, equipment_database.equipment_type, equipment_database.equipment_name, qr_links.qr_linked_with_id, qr_links.qr_link_code
FROM equipment_database
LEFT JOIN qr_links
ON equipment_database.equipment_id=qr_links.qr_linked_with_id
WHERE equipment_database.equipment_institute_id=?
AND equipment_database.equipment_institute_branch_id=?
AND equipment_database.equipment_status=?
AND CONCAT (equipment_database.equipment_name, equipment_database.equipment_type, qr_links.qr_link_code)
LIKE ?
ORDER BY equipment_database.equipment_name
LIMIT ?, ?;
Можно ли каким-либо образом включить значения NULL из qr_links
при использовании оператора LIKE
(поэтому %%
возвращает все значения плюс те, у которых значения NULL). Спасибо!