2

通配符在 sql 中是如何工作的。如果我这样做select * from table,它会给出所有字段。但如果我这样做select a* from table,它会给出错误。它不应该给出所有以a开头的字段吗?我有点困惑。

4

3 回答 3

4

SELECT * FROM tableName字面意思是“从 tableName 中选择所有列”。

菲利普格雷厄姆在他要求使用的地方的回答是正确的a.*

通配符可帮助您搜索不确定的字符串。这些几乎总是与LIKE关键字一起使用并放入WHERE子句或搜索CASE语句。

有两个通配符 -%_

%用于查找任何长度为 0 或更长的字符串。例如,

SELECT firstName
  FROM persons
 WHERE UPPER(firstName) LIKE 'J%'

这将返回firstname 以 letter 开头firstName的表中的所有内容。这将返回“Jason”、“James”、“Josh”、“Jessica”等等。personsJ

请注意,该UPPER函数用于消除区分大小写。

接下来,您可以让一个_角色寻找一个角色的存在。

SELECT firstName
  FROM persons
 WHERE UPPER(firstName) LIKE 'J_M__'

这将返回“James”、“Jimmy”、“Jamos”、“Jxmx”并过滤掉任何“Jason”、“Jaguar”等。

更多信息请点击这里

于 2013-02-24T11:46:43.543 回答
3

您可以使用 a.* 其中 a 是表的名称。例如在

select a.* from a left join b on a.id = b.id 

您将只返回来自 a 的字段,而不是来自 b 的字段

于 2013-02-23T23:40:32.297 回答
3

如果想在 SQL 中使用通配符,您需要在要过滤的列上键入LIKE.

SELECT * 
FROM table
WHERE column_name LIKE 'a%';

这将为您提供该列上以“a”开头的所有内容。

如果您不想要所有列,则必须在查询中明确给出您想要的每一列的名称。

SELECT LastName, FirstName, Address 
FROM table

因此,如果您想要所有以“a”开头的字段,则必须在 SELECT 语句中命名所有以“a”开头的字段。

希望这可以帮助。

于 2013-02-23T23:42:57.490 回答