著作権:LeifChenの元、ソースを明記してください、ありがとう〜https://blog.csdn.net/leifchen90/article/details/86718320
一般的なMySQLの開発スキル
人気のMySQLの開発スキルを仕上げ。
付加価値から変更
ALTER TABLE [NAME] AUTO_INCREMENT = 100;
定期大文字クエリ
SELECT * FROM [TABLE] WHERE BINARY [FIELD] REGEXP '[A-Z]'
行と列
1.ライン転送コラム
試験データ
テーブル名:student_score
SQL文
SELECT
name,
SUM( CASE course WHEN 'Chinese' THEN score END ) AS 'Chinese',
SUM( CASE course WHEN 'English' THEN score END ) AS 'English',
SUM( CASE course WHEN 'Math' THEN score END ) AS 'Math'
FROM
student_score
GROUP BY
name;
変換結果
2.カラムスイッチ
試験データ
テーブル名:permissonの
テーブル:シーケンス
SQL文
SELECT
user,
REPLACE (
SUBSTRING(
SUBSTRING_INDEX( auth, ',', a.id ),
CHAR_LENGTH( SUBSTRING_INDEX( auth, ',', a.id - 1 ) ) + 1
),
',',
''
) AS auth
FROM
`sequence` a
CROSS JOIN (
SELECT
user,
CONCAT( auth, ',' ) AS auth,
LENGTH( auth ) - LENGTH( REPLACE ( auth, ',', '' ) ) + 1 size
FROM
`permission`
) b ON a.id <= b.size;
変換結果
重複データを削除します。
テスト・データ
表:ユーザー
SQL文を
使用GROUP BY
し、HAVING
SELECT
name,
COUNT(*) AS '重复次数'
FROM
`user`
GROUP BY
name
HAVING
COUNT(*) > 1;
最大のIDを保持、重複データを削除します
DELETE a
FROM
`user` a
JOIN (
SELECT
name,
COUNT(*),
MAX(id) AS id
FROM
`user`
GROUP BY
name
HAVING
COUNT(*) > 1
) b ON a.name = b.name
WHERE
a.id < b.id
テスト結果