Блог старого компьютера

Блог старого компьютера


Главная Разное Формируем выборку в mysql запросе с помощью SUBSTRING

Формируем выборку в mysql запросе с помощью SUBSTRING

22.05.2013 16:52 Администратор Разное
Печать PDF
Пишу этот пост как и все остальные для себя чтоб если что мог быстрее вспомнить ну идля вас. Каждый программист в своей жизни работал с базами данных. Базы данных бывают разные, но без них нам никуда, именно они созданы для удобного хранения информации. Если за всю свою жизнь вы ни разу не работали с какой либо базой данных то полноценным программистом вас назвать нельзя. Сегодня мы поговорим о несовсем обычной (это лично мое мнение) выборке из mysql базе данных прямо в запросе к ней. Если уточнить то обычной я считаю нечто такое SELECT * FROM table WHERE state='1'. В примере который я привел мы с помощью простенького запроса выбираем из базы данных все строки в которых ячейка state равна единице.

Скажу сразу я не являюсь гуру в запросах к базе данных, мой уровень находится скорее всего на базовом уровне. Хоть я и работаю с базами каждый день, но в основном приходится решать простые задачи.

И так в начале года мне понадобилось реализовать что то вроде архива за разные года, все бы было хорошо, но года создания строки в таблице mysql базы не было и получить год можно было только из номера извещения который состоял из набора цифр и выглядел вот таким образом 0162300018012000008. Жирным я выделил тот самый год по которому мне необходимо было делать так называемую сортировку. Сначала я думал сделать все это на чистом php, но это бы был полнейший изврат. Тогда я полез читать документацию и наткнулся на mysql функцию SUBSTRING, с помощью нее я моментально составил нужный запрос и слегка изменил php код. Mysql запрос стал выглядеть так:

SELECT * FROM table WHERE SUBSTRING(number, 12, 2)='$year'

 Немного поясню. В запросе выше я организовываю выборку из mysql таблицы где в ячейке number 2 символа начиная с 12 равны необходимому году.

Далее в других данных мне необходимо сделать было аналогичное но там уже номер выглядел по другому, но это ничего практически не меняло, изменились лишь позиции необходимых символов в функции SUBSTRING.

Так же подобную задачу мне нужно было решить еще в одном месте и с помощью опять же это функции SUBSTRING я ее довольно быстро реализовал.

Вот такие вот дела!

Добавить комментарий


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?
 

Все материалы раздела