我有一个用于查找的表,它将人类可读的值存储在一个列中,并且在另一列中存储了相同的文本,其中删除了特殊字符和空格。例如,值“Children's Shows”将在查找列中显示为“childrens-shows”。
不幸的是,对应的主表并不是那么简单——由于历史原因,我没有自己创建,现在很难撤消,查找值实际上是用周围的星号存储的,例如'*childrens-shows*'。
因此,在尝试将无星号的查找表与具有星号的主表连接时,我认为 CONCAT 会帮助我即时添加它们,例如;
SELECT *
FROM main_table m
INNER JOIN lookup_table l
ON l.value = CONCAT('*',m.value,'*')
……然后桌子就烤好了。不确定我是创建了一个无限循环还是真的搞砸了数据,但它需要一个 ISP 备份才能让表再次响应。我怀疑这是因为“*”符号可能是保留的,就像通配符一样,我已经要求数据库做相当于舔自己的肘部的事情。无论哪种方式,鉴于它设法杀死数据库的壮观方式,我都不愿“实验”以找到答案。
提前感谢任何可以(a)告诉我上面对数据库实际做了什么,以及(b)我应该如何实际加入表格的人?