2013-07-18 4 views
0

У меня есть поля в двух таблицах mysql, которые мне нужно сопоставить ... в таблице продуктов у меня есть смешанные буквы/числовые ключи (product_code), такие как MM123, а затем в коллекции таблица у меня есть только буквы в качестве ключевого (collection_code), такие как ММ ...mysql match letter/number field with letter field без дубликатов

я попытался это:

select p.* 
from product p, collection c 
where p.product_code LIKE CONCAT(c.collection_code ,'%') 

однако я получаю несколько записей соответствует, потому что collection_code имеет такие элементы, как М и ММ поэтому он возвращает как product_code = M123, так и product_code = MM123

я думаю, что я хочу что-то вроде этого:

select p.* 
from product p, collection c 
where p.product_code LIKE CONCAT(c.collection_code ,REGEXP '[^0-9 \.]+') 

, но я не могу показаться, чтобы получить его точно

ответ

0
SELECT p.* 
FROM product p 
JOIN collection c 
ON p.product_code REGEXP CONCAT('^', c.collection_code, '[0-9]+$') 
+0

это, кажется, работает, спасибо !!! –