Copyright: LeifChen original, please indicate the source, thank you ~ https://blog.csdn.net/leifchen90/article/details/86718320
Article Directory
Common MySQL development skills
Finishing popular MySQL development skills.
Modified from value-added
ALTER TABLE [NAME] AUTO_INCREMENT = 100;
Regular capital letters query
SELECT * FROM [TABLE] WHERE BINARY [FIELD] REGEXP '[A-Z]'
Rows and columns
1. Line transfer column
Test Data
Table Name: student_score
SQL statements
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;
Conversion results
2. Column switch
Test Data
Table Name: permisson
table: sequence
SQL statements
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;
Conversion results
Delete duplicate data
Test Data
Table: user
SQL statements
use GROUP BY
andHAVING
SELECT
name,
COUNT(*) AS '重复次数'
FROM
`user`
GROUP BY
name
HAVING
COUNT(*) > 1;
Remove duplicate data, retaining the largest 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
Test Results