Skip to content

Instantly share code, notes, and snippets.

@KarmaBlackshaw
Last active March 11, 2022 14:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KarmaBlackshaw/6fc084fd6861b2e0d7435761f19a94ef to your computer and use it in GitHub Desktop.
Save KarmaBlackshaw/6fc084fd6861b2e0d7435761f19a94ef to your computer and use it in GitHub Desktop.
List of MySQL Basic Use Cases

List of MySQL Basic Use Cases

BULK UPDATE

When updating multiple rows with different values it is much quicker to use a bulk update.

UPDATE people 
SET name = 
  (CASE 
    WHEN id = 1 THEN 'Karl'
    WHEN id = 2 THEN 'Tom'
    WHEN id = 3 THEN 'Mary'
   END)
WHERE id IN (1, 2, 3);

By bulk updating only one query can be sent to the server instead of one query for each row to update. The cases should contain all possible parameters looked up in the WHERE clause.


ROW NUMBERS

When selecting row number, you can do:

SELECT 
  row_number() OVER (ORDER BY id) AS rowNumber, id 
FROM users; 

EXTRACT JSON KEY WITH PATH EXPRESSION ERROR

SELECT JSON_EXTRACT(fieldnames, '$."BAR-BAZ"') from foo;

UPDATE JOIN

UPDATE foo
join bar
ON foo.colA = bar.colA
SET foo.colB = bar.colB

COUNT TOTAL ROWS IN A GROUP BY STATEMENT

SELECT 
  COUNT(*) OVER () AS total
FROM foo
  GROUP BY foo.bar, foo.baz

MYSQL SET DEFAULT VALUE TO A JSON TYPE COLUMN

ALTER TABLE templates CHANGE [col] [col] JSON NOT NULL DEFAULT (JSON_OBJECT());
ALTER TABLE templates CHANGE [col] [col] JSON NOT NULL DEFAULT (JSON_ARRAY());

Search MYSQL Tables

Search tables from your database

Code

SELECT *
FROM information_schema.columns
WHERE column_name LIKE '%search_query%'
AND table_schema = 'table_name'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment