Citat:
rekorda koji su (ako ne isti) naj-slicniji po podacima.
po sql standardu - nikako
teoretski nesto bi moglo da se izmajmunise ali bi morao da definises sta znaci "slican"
Citat:
E sad upit bi trebao da izbaci kao rezultat one rekorde koji imaju
najvise slicnosti (najvise ISTIH podataka) sa rekordom koji se uporedjuje.
:D ...
moze da se izvede nesto ovako ali ... da li ce raditi i sutra :)
Code:
mysql> create table t1 (a int, b int, c int, d int);
Query OK, 0 rows affected, 2 warnings (0.02 sec)
mysql> insert into t1 values (1,2,3,4), (1,10,3,4), (1, 10,10,4), (1,10,10,10), (10,10,10,10);
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> SELECT IF(a=1,@res:=1,@res:=0) AS nebitnoA, IF(b=2,@res:=@res+1, 0) AS nebitnoB, IF(c=3,@res:=@res+1, 0) AS nebitnoC, IF(d=4,@res:=@res+1,0) AS nebitnoD, @res FROM t1 order by @res DESC;
+----------+----------+----------+----------+------+
| nebitnoA | nebitnoB | nebitnoC | nebitnoD | @res |
+----------+----------+----------+----------+------+
| 1 | 2 | 3 | 4 | 4 |
| 1 | 0 | 2 | 3 | 3 |
| 1 | 0 | 0 | 2 | 2 |
| 1 | 0 | 0 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 |
+----------+----------+----------+----------+------+
5 rows in set (0.00 sec)
sta je fora .. ove "nebitno?" varijable ti ne trebaju ni za sta u rezultatu ... mozes da ih iskoristis ako te bas zanimaju ali bolje nemoj :) .... u @res ti se za svaki slog nalazi "koliko kolona si pogodio" .. sortirano ti je od "najblizeg" rezultata ka losijim ...
pogledaj
http://dev.mysql.com/doc/refman/5.0/en/user-variables.html
Code:
mysql> SET @t1=0, @t2=0, @t3=0;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2:=@t2+10,@t3;
+----------------------+------+-------------+------+
| @t1:=(@t2:=1)+@t3:=4 | @t1 | @t2:=@t2+10 | @t3 |
+----------------------+------+-------------+------+
| 5 | 5 | 11 | 4 |
+----------------------+------+-------------+------+
1 row in set (0.01 sec)
cisto da vidis kako to sljaka