Select-запрос. Конкатенация в условии - текст+значение поля - MySQL

Узнай цену своей работы

Формулировка задачи:

Таблица во вложении необходимо выбрать те строки где числа(!) в колонках name и resource не равны Что-то типа такого:
SELECT * FROM TABLE WHERE name != 'resource-'.resource
Понятно что синтаксически не правильно. А как правильно? Подскажите пожалуйста!

Решение задачи: «Select-запрос. Конкатенация в условии - текст+значение поля»

textual
Листинг программы
mysql> select concat( 'resource-' , 727 );
+-----------------------------+
| concat( 'resource-' , 727 ) |
+-----------------------------+
| resource-727                |
+-----------------------------+
1 row in set (0.00 sec)
 
mysql> select substring_index( 'resource-727' , '-' , -1 );
+----------------------------------------------+
| substring_index( 'resource-727' , '-' , -1 ) |
+----------------------------------------------+
| 727                                          |
+----------------------------------------------+
1 row in set (0.00 sec)
 
mysql>

Объяснение кода листинга программы

  1. В первом запросе используется функция CONCAT(), которая объединяет текст 'resource-' и число 727 в одну строку. Результатом запроса будет строка 'resource-727'.
  2. Во втором запросе используется функция SUBSTRING_INDEX(), которая разделяет строку 'resource-727' по символу '-' и возвращает последний элемент результата разделения, то есть число 727.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы