Jump to content
php.lv forumi

Kā lai iziet cauri db, izmainot katrā ierakstā datus


pilots

Recommended Posts

Aptuveni 3000 ieraksti datubāzē kuros vienā laukā vajag izdzēst konkrētas frāzes.

 

Vai to var izdarīt ar kādu mysql vaicājumu?

 

Kā Jūs ieteiktu to risināt?

 

EDIT.

 

Piemēra situācija db:

id | info | teksts

1 | test | Mani sauc Jēkabs
2 | test | Mani sauc Juris
3 | test | Mani sauc Laimonis
4 | test | Mani sauc Didzis
5 | test | Mani sauc Ēriks
... utt ...

 

Nepieciešams izdzēst "Mani sauc " no visiem datubāzes ierakstiem.

Edited by pilots
Link to comment
Share on other sites

mazliet paturpināšu tēmu.

 

man vajag, lai tabulas laukos, kuros ir vārds 'Didzis' tiktu papildināts ar vārdiem- "Es esmu laimīgs, ka ":

 

id | info | teksts

1 | test | Mani sauc Jēkabs
2 | test | Mani sauc Juris
3 | test | Mani sauc Laimonis
4 | test | Es esmu laimīgs, ka Mani sauc Didzis
5 | test | Mani sauc Ēriks

 

kā tas izdarāms, jo ar vienkārši reilpeisošanu te nesanāks?

Link to comment
Share on other sites

nevar kaut ko tadu

 

update SET teksts = concat('Es esmu laimīgs, ka', teksts) WHERE teksts LIKE %Didzis%.

 

ps.

paskaties ka contcat syntakse pareizi rakstas

Edited by cucumber
Link to comment
Share on other sites

vel jautājums, kā lai procedūrai vērtību raksta aiz LIKE

 

DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`tabulas_update`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `tabulas_update`(IN pieliekama_value TINYTEXT, IN saturosa_value TINYTEXT)
BEGIN
UPDATE tb_options SET option_name = concat(pieliekama_value, option_name) 
WHERE option_name LIKE saturosa_value;
END$$
DELIMITER;

 

es gribu procedūrai padodamo vērtību ielikt šādi: LIKE %saturosa_value% - bet tā viņam nepatīk;

kad lieku šādi: LIKE '%saturosa_value%' tad vins to vairs neaprot par mainīgo;

 

kā būt?

Edited by 7924
Link to comment
Share on other sites

Vai manīgajam gadījuumā nebija @ zīme priekšā?

 

Skiet ka @ bija jaliek prieksa globalajiem mainigajiem

 

DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`tabulas_update`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `tabulas_update`(IN pieliekama_value TINYTEXT, IN saturosa_value TINYTEXT)
BEGIN
SET @aaa=saturosa_value;
UPDATE tb_options SET option_name = concat(pieliekama_value, option_name) 
WHERE option_name LIKE %@aaa%;
END$$
DELIMITER;

 

tāpatās neņem pretī :(

 

 

 

andrisp, Tu esi superhero, strādā šis:

 

DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`tabulas_update`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `tabulas_update`(IN pieliekama_value TINYTEXT, IN saturosa_value TINYTEXT)
BEGIN
SET @aaa=saturosa_value;
UPDATE tb_options SET option_name = concat(pieliekama_value, option_name) 
WHERE option_name LIKE concat('%', @aaa, '%', '');
END$$
DELIMITER;

 

strādā gan ar atsevišķi globālo mainīgo @aaa, gan arī ar iekšējo mainīgo: saturosa_value bez "@" :)

Edited by 7924
Link to comment
Share on other sites

×
×
  • Create New...