人間が読める値を1つの列に格納し、同じテキストから特殊文字とスペースを取り除いたものを別の列に格納するルックアップに使用されるテーブルがあります。たとえば、値「Children's Shows」は、ルックアップ列に「childrens-shows」として表示されます。
残念ながら、対応するメインテーブルはそれほど単純ではありません。歴史的な理由から、自分で作成しなかったため、元に戻すのは困難です。ルックアップ値は、実際には「*children-shows*」のように周囲のアスタリスクとともに保存されます。
したがって、ルックアップテーブルのsans-asterisksをアスタリスクのあるメインテーブルに結合しようとしているときに、CONCATがそれらをオンザフライで追加するのに役立つと思いました。
SELECT *
FROM main_table m
INNER JOIN lookup_table l
ON l.value = CONCAT('*',m.value,'*')
...そしてテーブルはトーストでした。無限ループを作成したのか、実際にデータをねじ込んだのかはわかりませんが、テーブルを再度応答させるにはISPバックアップが必要でした。'*'記号はおそらくワイルドカードのように予約されているためだと思います。データベースに、自分の肘をなめるのと同じことをするように依頼しました。いずれにせよ、データベースを強制終了するという見事な方法を考えれば、私は「実験」で答えを見つけるのをためらっています。
(a)上記がデータベースに対して実際に何をしたか、および(b)実際にテーブルをどのように結合する必要があるかを教えてくれる人に事前に感謝します。