我有两个表,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'";
答案 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
修复无效的“数字”。