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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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