[MySQL] LIKE na odwrot?

0

dla każdej gałązki mam ciąg obrazujący kolejnych rodziców danej gałązki w drzewie: "|0|3|6|15|20|" - 0 oznacza korzen, 20 gałązkę, a przykładowo 15 bezpośredniego rodzica gałązki...

numery w tym przypadku oznaczają identyfikator gałązki - mam sobie tabelę, w której są dodatkowe informacje na temat tych gałązek (przykładowo ilość wiszących na nich owoców oraz wspomniany ciąg obrazujący rodziców).

i teraz mój problem - przy dodawaniu "owocu" do jakiejś gałązki, chciałbym, aby wartość "ilość owoców" była zwiększana w danej gałązce oraz we wszystkich jej rodzicach...

struktura tabeli i przykładowe kilka wpisów (już nie "obrazowo", tylko tak jak jest ;)):

CREATE TABLE `gotow_kat` (
  `id` int(11) NOT NULL auto_increment,
  `nazwa` char(64),
  `parent` int(11),
  `path` text,
  `cnt` int(11),
  PRIMARY KEY (`id`)
);

INSERT INTO `gotow_kat` VALUES (1, 'gimnazjum', 0, '|0|1|', 4);
INSERT INTO `gotow_kat` VALUES (2, 'polski', 1, '|0|1|2|', 0);
INSERT INTO `gotow_kat` VALUES (3, 'odrodzenie', 2, '|0|1|2|3|', 0);
INSERT INTO `gotow_kat` VALUES (4, 'wiersze', 3, '|0|1|2|3|4|', 0);
INSERT INTO `gotow_kat` VALUES (9, 'matematyka', 8, '|0|8|9|', 2);
INSERT INTO `gotow_kat` VALUES (8, 'liceum', 0, '|0|8|', 1);

jak to zrobić jednym zapytaniem bez robienia przydluuuugiej listy po WHERE?

sprawę by rozwiązało zapytanie:

$q = mysql_query('SELECT path FROM gotow_kat WHERE id = '.$id_kategorii_do_ktorej_dodawany_jest_item);
$r = mysql_fetch_array($q);
$path = $r['path'];

mysql_query('UPDATE gotow_kat SET cnt = cnt + 1 WHERE "'.$path.'" LIKE %id%');
lub
mysql_query('UPDATE gotow_kat SET cnt = cnt + 1 WHERE "'.$path.'" LIKE "%"id"%"');
lub
mysql_query('UPDATE gotow_kat SET cnt = cnt + 1 WHERE "'.$path.'" LIKE "%"+id+"%"');
czy jakkolwiek inaczej

tyle ze troche nie berdzo mysqlowe jest :]

0

[glowa]
sam sobie poradzilem - ostatnie zapytanie bylo prawie poprawne :D
moze komus sie to przyda, wiec podaje rozwiazanie:

UPDATE gotow_kat SET cnt = cnt + 1 WHERE "|0|1|2|" LIKE CONCAT("%", id, "%")

1 użytkowników online, w tym zalogowanych: 0, gości: 1