【问题标题】:Using SELECT in this SQL statement isn't working在此 SQL 语句中使用 SELECT 不起作用
【发布时间】:2010-12-28 03:57:42
【问题描述】:

我的桌子是这样组织的:

key 作为主要字段。显示的记录在renamed 表中。

我需要通过钥匙取出original_name。键列是表的主键。

这是我的 SQL 代码:

SELECT original_name FROM `renamed` WHERE key='fb166'

但是,它不会返回任何结果。我已经通过我的 PHP 脚本和直接通过 phpMyAdmin 进行了尝试,并且都返回了一个空的结果集。

有什么帮助吗? :/

【问题讨论】:

  • 值可以包含空格吗?例如。 'fb166 '?
  • 如果你有WHERE key LIKE '%fb166%',你有什么结果吗?
  • key字段的SQL数据类型是什么?
  • 比尔,没有一个键包含空格,这是我的第一个猜测。 :) 莎拉,我的 SQL 语法出现错误。如果我用 ' 包围键,我会得到一个空的结果集。
  • Bryan,关键字段是文本类型。

标签: sql mysql phpmyadmin


【解决方案1】:

key 是 MySQL 中的保留字。你试过了吗:

SELECT original_name FROM `renamed` WHERE `key`='fb166'

【讨论】:

  • 啊!这样可行。我完全忘记了保留字的可能性。非常感谢! :)
【解决方案2】:

试试类似的东西

SELECT '|' || key || '|'
FROM renamed
WHERE key LIKE '%fb166%'

并检查您是否得到结果以及密钥的外观......

你得到以下结果了吗?

SELECT * FROM renamed

【讨论】:

  • 这确实带回了所有行。
【解决方案3】:
  1. 反引号是必要的,因为 key 是 mysql 中的关键字。

  2. 按照建议尝试使用WHEREkeyLIKE '%fb166%',因为您的列是文本类型,可能您在其中有一些其他字符。

  3. 拥有一种文本类型的键是个坏主意,您将无法将其设为主键或为其添加索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 2021-12-29
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多