我想要搜索特定字段或者STARTS WITH某个字符串(比方说“ar”)或该字段包含字符串“ar”的记录。SQL语句的WHERE子句中的加权条件
但是,我认为这两个条件不同,因为我限制返回到10的结果数量,我希望STARTS WITH条件比CONTAINS条件的权重更重。
例子:
SELECT *
FROM Employees
WHERE Name LIKE 'ar%' OR Name LIKE '%ar%'
LIMIT 10
美中不足的是,是,是否有与“AR”,就应该受到青睐开头的名称。我应该找回一个只包含“ar”的名称的唯一方法是,如果有少于10个名称的开头为“ar”
如何对MySQL数据库执行此操作?
+1。同意,这是更有效的。 – mellamokb
这似乎适用于我。你能解释一下吗?我理解(一般来说)联盟的含义。什么是X和Y以及什么是1和2? –
@Stephen - X和Y只是给子查询的别名(每个派生表必须是别名 - 以便可以在需要时引用它们)。您可以添加一列到任何结果集,只需给出一个值并命名(别名)该列即可。在这种情况下,我在第一部分中添加了一个名为“Preferred”的列,其值为1,第二部分中的值为2。列现在是结果的一部分(用于查询)。 – RichardTheKiwi