エイドリアン:
それが可能だ場合、私は知らないが、私は、MySQLデータベースに方法を探しています:
- アイテムを検索
model = 'YES-OK'
し、image
このために、私は正規表現があることが分かった:ファイル名は(行番号5の例では)すべての数値ではありません\/my\/dir-ectory\/\b.*[a-zA-Z]+.*\b.jpg
動作するはずです。
- 一致している行:カンマなしSKUで画像のファイル名を置き換えます。
例データベース入力:
+----+--------+--------+-----------------------------+
| id | sku | model | image |
+----+--------+--------+-----------------------------+
| 1 | 123,45 | YES-OK | /my/dir-ectory/abc4.jpg |
| 2 | 123,46 | YES-OK | /my/dir-ectory/4abc.jpg |
| 3 | 123,47 | YES-OK | /my/dir-ectory/abcd.jpg |
| 4 | 123,48 | YES-OK | /my/dir-ectory/3a-baaac.jpg |
| 5 | 123,49 | YES-OK | /my/dir-ectory/12349.jpg |
+----+--------+--------+-----------------------------+
出力例:
+----+--------+--------+-----------------------------+
| id | sku | model | image |
+----+--------+--------+-----------------------------+
| 1 | 123,45 | YES-OK | /my/dir-ectory/12345.jpg |
| 2 | 123,46 | YES-OK | /my/dir-ectory/12346.jpg |
| 3 | 123,47 | YES-OK | /my/dir-ectory/12347.jpg |
| 4 | 123,48 | YES-OK | /my/dir-ectory/12348.jpg |
| 5 | 123,49 | YES-OK | /my/dir-ectory/12349.jpg |
+----+--------+--------+-----------------------------+
これは純粋なSQLで可能ですか?
ゴードン・リノフ:
あなたのイメージのパスと仮定すると、すべての行に同じ形式になっています。
select id, sku, model,
concat(substring_index(image, '/', 3), '/', replace(sku, ',', ''), '.jpg')
from t
where model = 'YES-OK';
そして、あなたは数字のために発見した正規表現を追加することができます。私は従って、それは少し難しい見つけます。
あなたは簡単に同じロジックを組み込むことができupdate
、あなたがしたい場合update
。