一般的なMySQLの開発スキル

著作権: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
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

テスト結果
結果

おすすめ

転載: blog.csdn.net/leifchen90/article/details/86718320