Мне нужно показать результаты из этого столбца, где столбец Product_name содержит «Документация» или «документация» в результате. Запрос должен возвращать результат независимо от того, написано ли слово строчными или прописными буквами.
https://i.stack.imgur.com/bjLuY.png
SELECT UPPER(PROD_NAME)as PROD_NAME, LENGTH(PROD_NAME) as PROD_NAME_LEN
FROM PRODUCTS
WHERE (PROD_NAME like '%Documentation%'
or PROD_NAME like '%DOCUMETATION%')
and LENGTH(PROD_NAME) <= 35
order by 2 DESC;
Я нашел это решение, любые предложения
Если вы удивлены, что запрос не вернул ни одного совпадения в верхнем регистре: в '%DOCUMETATION%' есть пропущенный знак N.
И просто общее замечание, которое не имеет ничего общего с вашим вопросом: я вижу, что вы пытаетесь сделать свой запрос доступным, используя верхний и нижний регистр. Но нет последовательности. Некоторые ключевые слова в нижнем регистре (as
, like
, or
, ...), некоторые в верхнем регистре (SELECT
, UPPER
, FROM
). Будьте последовательны, т.е. иметь все ключевые слова в верхнем регистре и все имена в нижнем регистре (SELECT UPPER(prod_name) AS prod_name, LENGTH(prod_name) AS prod_name_len ...
).
SELECT UPPER(PROD_NAME)as PROD_NAME, LENGTH(PROD_NAME) as PROD_NAME_LEN
FROM PRODUCTS
WHERE lower(PROD_NAME) like '%documentation%'
and LENGTH(PROD_NAME) <= 35
order by 2 DESC;
Когда я использую PHP с MySQL, я лично использую что-то вроде:
$setgeneral=$db->prepare("SELECT * FROM general where general_id=:general_id");
$setgeneral->execute(array('general_id' => 0));
$getgeneral=$setgeneral->fetch(PDO::FETCH_ASSOC);
Этот код берет "общую" таблицу и выводит строку/строки с общим_идентификатором=0. Ну, это не только для id. Вы также можете использовать его для prod_name!
Это не имеет отношения к заданному ОП вопросу.
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Если вы хотите получить исходное PROD_NAME, как оно есть в таблице, не используйте UPPER в предложении select...
SELECT PROD_NAME as PROD_NAME, LENGTH(PROD_NAME) as PROD_NAME_LEN
FROM PRODUCTS
WHERE LOWER(PROD_NAME) like '%documentation%'
-- UPPER(PROD_NAME) like '%DOCUMENTATION%' - instead of LOWER(), you can do it this way too - same result
And LENGTH(PROD_NAME) <= 35
ORDER BY 2 DESC;
С уважением...
Отвечает ли это на ваш вопрос? БД Oracle: как написать запрос без учета регистра?