我有我的表中的某些列,描述列包含的一些信息等;需要MySQL數據庫manupilation PHP正則表達式模式
a1b01,Value 1,2,1,60|a1b01,Value2,1,1,50|b203c,Value 1,0,2,20
用SQL命令,我需要更新它。
在那裏,我將使用一個PHP函數用於更新,如果在當前記錄存在的第一和第二參數(在說明列)一起使用。
例如:如果用戶想改變的描述,其中包括價值a1b01,Value 1
我會執行這樣一個SQL命令;
function do_action ($code,$value,$new1,$new2,$newresult) {
UPDATE the_table SET descriptions = REPLACE(descriptions, $code.','.$value.'*', $code.','.$value.','.$new1.','.$new2.','.$newresult)";
}
- (星)表明,這些部分是未知的(這就是爲什麼我需要一個正則表達式)
我的問題是:我怎樣才能得到
a1b01,Value 1,2,1,60|
部分從下面串
a1b01,Value 1,2,1,60|a1b01,Value2,1,1,50|b203c,Value 1,0,2,20
通過正則表達式,但a1b01
和Value 1
應該得到儘可能的參數。
我只想說;當我打電話do_action
那樣;
do_action ("a1b01","Value 1",2,3,25);
記錄將是:a1b01,Value 1,2,3,25
|a1b01,Value2,1,1,50|b203c,Value 1,0,2,20
(第一部分更新中...)
你爲什麼要在RDBMS中存儲序列化的值?閱讀:http://stackoverflow.com/questions/7364803/storing-arrays-in-the-database/7364834#7364834。如果你的桌子設計正確,你就不會有這個問題。 – NullUserException