如何在mysql查询中替换方括号[]

时间:2018-06-18 16:49:20

标签: mysql sql

我有两个表,customer和customer_products,在customer表中,我有image列,并将数据存储为[25],这25是来自customer_products列的id ID,

这里我使用左连接尝试数据客户和customer_products,并从25

中删除[]

这是我的SQL查询。

"SELECT c.*, cp.* 
 FROM customer c LEFT JOIN 
      customer_products cp 
      ON c.[image]=cp.id 
WHERE status='L'";  

1 个答案:

答案 0 :(得分:1)

使用concat()功能在customer_products列上获得相同的格式:

SELECT c.*, cp.* 
FROM customer c LEFT JOIN 
     customer_products cp ON
     c.image = concat('[',cp.id,']')
WHERE status='L';  

您还可以使用trim()功能从[]列中删除customer个符号:

SELECT c.*, cp.* 
FROM customer c LEFT JOIN 
     customer_products cp ON
     trim(trailing ']' from trim(leading '[' from c.image)) = cp.id
WHERE status='L';  

作为一般规则,您应该更改数据,以便将数字存储为数字,并包含FOREIGN KEY CONSTRAINT以正确解决您现在遇到的任何问题并能够完全解决使用索引的强大功能来提高搜索性能,而无需使用功能索引。

也就是说,如果您想修改数据以确保其正确存储,请使用UPDATE修复无效的“数字”。