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

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

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

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

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

textual
Листинг программы
  1. mysql> select concat( 'resource-' , 727 );
  2. +-----------------------------+
  3. | concat( 'resource-' , 727 ) |
  4. +-----------------------------+
  5. | resource-727                |
  6. +-----------------------------+
  7. 1 row in set (0.00 sec)
  8.  
  9. mysql> select substring_index( 'resource-727' , '-' , -1 );
  10. +----------------------------------------------+
  11. | substring_index( 'resource-727' , '-' , -1 ) |
  12. +----------------------------------------------+
  13. | 727                                          |
  14. +----------------------------------------------+
  15. 1 row in set (0.00 sec)
  16.  
  17. mysql>

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

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

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


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

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

8   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы