On Don, 22 Mai 2003 at 04:13 (+0200), David Haller wrote:
On Wed, 21 May 2003, Jan Trippler wrote: [...]
SELECT name FROM RPMBD WHERE file LIKE "/usr/bin/sed%";
Was aber auch wieder eher sinnfrei ist ;)
Nö, SQL. Die Joker im ANSI-SQL haben nischt mit denen aus Unix zu tun (so wie SQL ja auch nicht auf Unix fixiert ist, sondern auf relationale DB).
noch um eine "Meta"-Abfrage, fuer die man erst noch einen SQL-Wrapper um die Berkeley-DB stricken muesste (und die 9 DBs von RPM), also praktisch um 'rpm -q'...
Das war mir schon klar. Ich wollte bloß ein wenig stänkern wegen Deines SQL-Kauderwelschs ;-)
ist korrekt,
Aber die Wildcard ist redundant.
??? mysql> create table test (datei char(255)); Query OK, 0 rows affected (0.00 sec) mysql> insert into test (datei) values ('/usr/bin/sed'); Query OK, 1 row affected (0.00 sec) mysql> insert into test (datei) values ('/usr/bin/sed_von_david'); Query OK, 1 row affected (0.00 sec) mysql> select * from test; +------------------------+ | datei | +------------------------+ | /usr/bin/sed | | /usr/bin/sed_von_david | +------------------------+ 2 rows in set (0.01 sec) mysql> select * from test where datei like '/usr/bin/sed'; +--------------+ | datei | +--------------+ | /usr/bin/sed | +--------------+ 1 row in set (0.00 sec) mysql> select * from test where datei like '/usr/bin/sed%'; +------------------------+ | datei | +------------------------+ | /usr/bin/sed | | /usr/bin/sed_von_david | +------------------------+ 2 rows in set (0.00 sec) mysql> select * from test where datei like '/usr/bin/sed%d'; +------------------------+ | datei | +------------------------+ | /usr/bin/sed_von_david | +------------------------+ 1 row in set (0.00 sec) mysql> select * from test where datei = '/usr/bin/sed%d'; Empty set (0.00 sec) Die Wildcard ist also keineswegs redundant, die SQL-Syntax und -Semantik unterscheidet sich nur von der Dir gewohnten. Eine Wildcard ist eben nicht _immer_ eine Wildcard, sondern nur dann, wenn LIKE davor steht. Sonst ist % nur ein stino Zeichen. Das vereinfacht die Syntax, da Du % nicht entwerten musst. Man darf nicht vergessen, dass SQL keine Programmiersprache ist, sondern eine _Abfrage_sprache, die auch Nicht-Programmierern das Abfragen von DBs erlauben sollte (lange bevor es dafür grafische Oberflächen gab).
[..]
P.S.: Das, werte Leser, war Teil 2 des Kurses *g*
*bg*
3 Jan