0

私は一致する必要がある2つのmysqlテーブルにフィールドがあります...製品テーブルにはMM123などの文字/数字キー(product_code)が混在しており、コレクションテーブルにはキー(collection_code)として文字だけがありますんん...

私はこれを試しました:

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

ただし、collection_code には M と MM の両方のエントリがあり、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 \.]+')

しかし、私は正確にそれを得ることができないようです

4

1 に答える 1

0
SELECT p.*
FROM product p
JOIN collection c
ON p.product_code REGEXP CONCAT('^', c.collection_code, '[0-9]+$')
于 2013-07-18T05:19:47.000 に答える