Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 简单Postgresql语句-列名不存在_Php_Postgresql_String Constant - Fatal编程技术网

Php 简单Postgresql语句-列名不存在

Php 简单Postgresql语句-列名不存在,php,postgresql,string-constant,Php,Postgresql,String Constant,我一直在拔头发。我有一个非常简单的postgre数据库,一个特定的表有一个名为lName(大写N)的列。现在我知道postgre必须引用lName,因为它包含大写的N 我正在尝试使用以下语句查询数据库: 选择* 来自员工 “lName”像“Smith”在哪里 但我收到这个错误: 警告:pg_query() [function.pg query]:查询失败: 错误:“Smith”列不存在 在 这里的问题是什么?为什么说专栏是“史密斯”?我猜: SELECT * FROM employee WH

我一直在拔头发。我有一个非常简单的postgre数据库,一个特定的表有一个名为lName(大写N)的列。现在我知道postgre必须引用lName,因为它包含大写的N

我正在尝试使用以下语句查询数据库:

选择*
来自员工
“lName”像“Smith”在哪里
但我收到这个错误:

警告:pg_query() [function.pg query]:查询失败: 错误:“Smith”列不存在 在

这里的问题是什么?为什么说专栏是“史密斯”?

我猜:

 SELECT * FROM employee WHERE "lName" LIKE 'Smith'
(注意不同的引号;
“foo”
是带引号的标识符;
“foo”
是字符串文字)

此外,在大多数SQL方言中,类似于没有通配符的
等价于
=
;您的意思是包含通配符吗?

因为
“Smith”
是一个标识符,在该位置,标识符应该是一列。您可能指的是字符串文字,它使用单引号:
'Smith'
。所以

SELECT * FROM employee WHERE "lName" LIKE 'Smith'
您可能还希望在字符串中搜索通配符(
'Smith%'
?)<与典型的正则表达式匹配不同,code>LIKE
匹配定位到字符串的开头和结尾