Очень часто приходиться лезть в справочник и искать нужную функцию, поэтому я здесь сделал в виде примеров самые часто необходимые функции.
При выводе скроет те строки которые в точности схожи:
SELECT DISTINCT * FROM nametable
Выведем поле odate с именем data и изменим формат отображения времени:
SELECT DATE_FORMAT( tn.odate, '%d.%m.%Y' ) AS data FROM tablename tn
Выборка из таблицы phpbb_users, где в одной из строк поля phpbb_users присутствует запись my-email@test.ru и/или есть no-my-email@test.ru, то есть проверка на существование:
SELECT * FROM phpbb_users WHERE user_email IN ('my-email@test.ru','no-my-email@test.ru');
Главный момент здесь - IN с помощью которого и происходит выборка значений, которые указаны в скобках через запятую.
Показать колонки(устанавливаемые правила) таблицы host:
DESCRIBE host
Добавим в таблицу forums новый столбец test, разместив его после столбца name:
ALTER TABLE forums ADD test int(10) AFTER name
Переименуем созданный столбец man в текстовый столбец women. При изменении только типа столбца, а не его имени происходит тоже самое:
ALTER TABLE forums CHANGE man women text
Удалим столбец test:
ALTER TABLE forums DROP test
Удалим из таблицы db стрку где в столбце User есть ячейка со словом ra:
DELETE FROM db WHERE User = 'ra'
Удаляем таблицу с именем tablename:
DROP TABLE tablename
Удаляем таблицу с именем dbname:
DROP DATABASE dbname
Обновляем в строке таблицы forums в поле name и поле hide где id этой строки = 2:
UPDATE forums SET name='PHP', hide=1 WHERE id=2
Замена чего-то во всех ячейках заданного столбца:
UPDATE ИМЯ_ТАБЛИЦЫ SET ИМЯ_ПОЛЯ=REPLACE(ИМЯ_ПОЛЯ, 'ЭТО ЗАМЕНИТЬ', 'НА ЭТО')
Для удаления одинаковых записей, можно применять такой запрос:
DELETE my_table
FROM my_table AS table1,
my_table AS table2
WHERE table1.my_field = table2.my_field AND table1.id > table2.id
Добавляем новую строчку:
SET @block_id := (SELECT id FROM menu WHERE title = 'Каталог' LIMIT 1);
INSERT INTO admin_menu VALUES ('Подменю', @block_id);
SET @id := LAST_INSERT_ID();
INSERT INTO permissions VALUES (1, @id);
Пронумеровать поле таблицы "по-порядку":
update my_table set
field1 =(select @a:= @a + 1 from (select @a:= 0) s)
order by field2, field3 ...
Создание функции:
CREATE FUNCTION sphinx_transliteration (doc TEXT) \
RETURNS TEXT DETERMINISTIC \
RETURN replace(replace(replace('ю','ju'),'я','ja'),'"',' ')
DROP FUNCTION IF EXISTS sphinx_transliteration
Поиск в временной таблице где строки объединены в одну строку с поомощью функции GROUP_CONCAT:
SET group_concat_max_len = 4294967295;
SELECT
id,
title
FROM Article
LEFT JOIN (
SELECT
articleId,
GROUP_CONCAT(dataValue SEPARATOR ' ') as allRows
FROM Paragraph
WHERE isShow = 1
GROUP BY articleId
) AS Paragraph ON Paragraph.articleId = Article.id
WHERE Article.isShow = 1 AND
(
Article.title LIKE :title OR
Paragraph.allRows LIKE :text
)
LIMIT 0, 10
Удачки!