Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> podzapytanie - drobny problem :), dodawanie integera do wyniku selecta ?
Yacho
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 16.06.2003

Ostrzeżenie: (0%)
-----


mam cos takiego :

  1. INSERT
  2. INTO mod_xgallery_categories(parent_id,
  3. name, description) VALUES('$parentID',(SELECT level
  4. FROM mod_xgallery_categories
  5. WHERE cat_id = $parentID) + 1,'$name','$description')"


i to +1 wywala mi cale zapytanie - szukalem w dokumentacji ale nei wiem... jak dodac jedynke do tego selecta ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tort
post
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 15.09.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


To może tak:
  1. INSERT
  2. INTO mod_xgallery_categories(parent_id,
  3. level, name, description)
  4. SELECT 39, level + 1, 'aaa', 'aaa'
  5. FROM mod_xgallery_categories
  6. WHERE cat_id = 0 LIMIT 1

lub tak:
  1. INSERT
  2. INTO mod_xgallery_categories(parent_id,
  3. level, name, description)
  4. SELECT 39, level + 1, 'aaa', 'aaa'
  5. FROM mod_xgallery_categories
  6. WHERE id =
  7. (SELECT id
  8. FROM mod_xgallery_categories
  9. WHERE cat_id =0 LIMIT 1)


A w najgorszym razie możesz zastosować taki trick:
  1. SELECT @val=level + 1
  2. FROM mod_xgallery_categories
  3. WHERE cat_id = 0 LIMIT 1;
  4. INSERT
  5. INTO mod_xgallery_categories(parent_id,
  6. level, name, description)
  7. VALUES (39, @val, 'aaa', 'aaa');

Czyli najpierw przypisujesz do zmiennej systemowej (MySQLa oczywiście) wartość level+1, a potem ją umieszczasz w tabeli razem z innymi wartościami. I to wszystko możesz potraktowac jako jedno zapytanie, bo MySQL pozwala na takie rzeczy.

Ten post edytował tort 10.02.2006, 23:46:17
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 16:16