BETWEEN
kann dazu beitragen, eine unnötige Neubewertung des Ausdrucks zu vermeiden:
SELECT AVG(RAND(20091225) BETWEEN 0.2 AND 0.4)
FROM t_source;
---
0.1998
SELECT AVG(RAND(20091225) >= 0.2 AND RAND(20091225) <= 0.4)
FROM t_source;
---
0.3199
t_source
ist nur eine Dummy-Tabelle mit 1,000,000
Aufzeichnungen.
Natürlich kann dies mit einer Unterabfrage umgangen werden, aber in MySQL
es ist weniger effizient.
Und natürlich, BETWEEN
ist besser lesbar. Es dauert 3
mal in einer Abfrage zu verwenden, um sich die Syntax für immer zu merken.
Unter SQL Server
y MySQL
, LIKE
gegen eine Konstante mit nicht-führendem '%'
ist auch eine Kurzform für ein Paar von >=
y <
:
SET SHOWPLAN_TEXT ON
GO
SELECT *
FROM master
WHERE name LIKE 'string%'
GO
SET SHOWPLAN_TEXT OFF
GO
|--Index Seek(OBJECT:([test].[dbo].[master].[ix_name_desc]), SEEK:([test].[dbo].[master].[name] < 'strinH' AND [test].[dbo].[master].[name] >= 'string'), WHERE:([test].[dbo].[master].[name] like 'string%') ORDERED FORWARD)
Allerdings, LIKE
Die Syntax ist besser lesbar.