"Column 'Mary' Does Not Exist": Understanding the Quote Conundrum
When executing the following SQL query, you might encounter an error indicating that the column 'Mary' does not exist:
SELECT telephone.telephonenumber AS tel FROM person, telephone WHERE person.idperson = telephone.idperson AND person.personname = ‘Mary’;
Confusingly, you are not referencing 'Mary' as a column name but rather as a value to compare against. The source of this error lies in the use of smart quotes, (‘Mary’), instead of plain single quotes, ('Mary'), to delimit the string literal.
In SQL, smart quotes are often used to enclose column names or table names, as they prevent ambiguity in cases where identifiers might clash with reserved words. However, when it comes to string literals, such as the value you want to compare against personname, it is essential to use plain single quotes.
By replacing the smart quotes with plain single quotes, the query should execute successfully, returning the correct telephone number for the person with the name 'Mary'. Here is the corrected query:
SELECT telephone.telephonenumber AS tel FROM person, telephone WHERE person.idperson = telephone.idperson AND person.personname = 'Mary';
Remember, it is crucial to use plain single quotes for string literals in SQL to avoid errors and ensure that your queries operate as intended.
The above is the detailed content of Why Does My SQL Query Return 'Column 'Mary' Does Not Exist'?. For more information, please follow other related articles on the PHP Chinese website!