|
Страници по тази тема: 1 | 2 | 3 | >> (покажи всички)
Тема
|
vzemi samo ako ...
|
|
Автор | bil (Нерегистриран) |
Публикувано | 09.10.02 04:13 |
|
ako imam edna tablica (id primary, chislo, value) kak moga da napravq taka naprimer che ako imam nqkolko value, povtarqshti se moje da sa, kak da vzema samo tezi value koito imat edna i syshta stoinost za chislo. no ne moga da go napisha kato konstanta, t.e. ne znam chisloto predvaritelno i ne moga da napisha where chislo = x;
| |
Тема
|
P.S.
[re: bil]
|
|
Автор | bil (Нерегистриран) |
Публикувано | 09.10.02 05:25 |
|
zabravih da kaja, che ne moje da imam dve ili poveche ednakvi stoinosti na value s edna i syshta stoinost za chislo.
| |
Тема
|
Re: P.S.
[re: bil]
|
|
Автор | svircho (Нерегистриран) |
Публикувано | 09.10.02 10:42 |
|
Ако съм те разбрал правилно искаш да изпълниш динамичен SQL, да изпълниш select без да знаеш в WHERE клаузата ти по коя стойност ще търсиш. Ако е така, кажи каква ти е базата, защото в различните бази динамичния SQL се прави с различни методи.
| |
Тема
|
Re: P.S.
[re: svircho]
|
|
Автор | Bil (Нерегистриран) |
Публикувано | 09.10.02 10:53 |
|
bazata e MySQL.
| |
|
Какво разбираш под "динамичен SQL"?
| |
Тема
|
Re: P.S.
[re: salle]
|
|
Автор | svircho (Нерегистриран) |
Публикувано | 09.10.02 12:07 |
|
select name,v_town from v_table_name
where name = v_name
където v_town,v_table,v_name са променливи, които могат да имат различни стойности. Този select се явява динамичен SQL - не можеш да го изпълниш директно, защото SQL е тъп все пак
А за Bil мога да кажа: не съм работил с MySQL и не знам как става там, може би salle ще може да ти помогне.
| |
|
select name,v_town from v_table_name
where name = v_name;
В тази заявка няма нищо динамично както си я написал. Само ще объраш още повече човека.
SQL не е тъп. SQL е език за работа с Релационни Бази занни и затова описва Релационна Алгебра :)
Клиентските програмите които генерират SQL заявки са съвсем други нещо
| |
Тема
|
Re: vzemi samo ako ...
[re: bil]
|
|
Автор |
salle (Един такъв) |
Публикувано | 09.10.02 12:25 |
|
Най лесно става като дадеш примерче
Ако имаш таблица:
1 10 20
2 10 25
3 12 35
4 12 25
5 14 44
искаш да получиш ......
| |
Тема
|
primerche
[re: salle]
|
|
Автор | Bil (no Gates, bla) (Нерегистриран) |
Публикувано | 09.10.02 12:46 |
|
ako imam tablicata
id ch v
------
1 10 val
2 10 val2
3 12 value
4 12 val
5 15 some
i ako izraza e: select * from table where (v = 'val' or v = 'val2'); no tova shte mi izvede i redyt s id = 4 koito syshto e 'val' za v. A az iskam da vzema samo
1 10 val
2 10 val2
zashtoto ch e ednakyv za tezi stoinosti, no ne i za id = 4. no kakto kazah ne moga da napisha where v = 'val' or v = 'val2' and ch = 10, zashtoto ne znam che mi trqbvat tezi koito imat ch = 10, a samo che tezi 2 v koito iskam da vzema imat ednakva stoinost za ch;
10x
| |
|
А какво ще стане ако таблицата ти има още един ред:
mysql> select * from val;
+----+------+-------+
| id | ch | v |
+----+------+-------+
| 1 | 10 | val |
| 2 | 10 | val2 |
| 3 | 12 | value |
| 4 | 12 | val |
| 5 | 15 | some |
| 6 | 12 | val2 |
+----+------+-------+
Тогава на твоето условие ще отговарят 2 двойки редове:
id 1,2 и 4,6 т.е.
| 1 | 10 | val |
| 2 | 10 | val2 |
| 4 | 12 | val |
| 6 | 12 | val2 |
| |
|
Страници по тази тема: 1 | 2 | 3 | >> (покажи всички)
|
|
|