わたしの日記だよ

ー生きる厳しさと哀しさを鮮烈に謳うー

【MySQL】Query メモだよ

どうやって書くか、すぐ忘れちゃう、、

特定の文字の数

cf.) ancestry カラム内の、「/」の数
「1/10」→「1」
「1/10/1000」→「2」

LENGTH(ancestry) - LENGTH(REPLACE(ancestry, '/', ''))

特定の文字列の数

cf.) school カラム内の、「コース」の数

(LENGTH(school) - LENGTH(REPLACE(school, 'コース', ''))) / LENGTH('コース')

「最初に出現した特定の文字」より前を切り出す

cf.) ancestry カラム内の、最初に出現した「/」より前
「1/10」→「1」
「1/10/1000」→「1」

SUBSTRING_INDEX(ancestry, '/', 1)

「最後に出現した特定の文字」より後を切り出す

cf.) ancestry カラム内の、最後に出現した「/」より後
「1/10」→「10」
「1/10/1000」→「1000」

SUBSTRING_INDEX(ancestry, '/', -1)

「最後に出現した特定の文字」より前を切り出す

cf.) ancestry カラム内の、最後に出現した「/」より前
「1/10」→「1」
「1/10/1000」→「1/10」

SUBSTRING_INDEX(ancestry, '/', LENGTH(ancestry) - LENGTH(REPLACE(ancestry, '/', '')))