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>
Объяснение кода листинга программы
- В первом запросе используется функция CONCAT(), которая объединяет текст 'resource-' и число 727 в одну строку. Результатом запроса будет строка 'resource-727'.
- Во втором запросе используется функция SUBSTRING_INDEX(), которая разделяет строку 'resource-727' по символу '-' и возвращает последний элемент результата разделения, то есть число 727.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д