由于某些原因,这不起作用:
select substring(rating, instr(rating,',') +1, +2) as val
from users where val = '15';
它给出了这个错误:
错误1054(42S22):“ where子句”中的未知列“ val”
那我该怎么办呢?
首先,您不能ALIAS
在WHERE
子句上使用。您应该使用该列,
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'
原因如下:操作顺序为SQL,
在ALIAS
需要的地方SELECT
也就是前子句WHERE
子句。
如果您确实要使用别名,请将其包装在子查询中,
SELECT *
FROM
(
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
) s
WHERE val = '15'
问题内容: 我是MSSQL用户,现在将数据库转换为MySQL。我在MySQL中编写以下查询: 我得到以下错误 如何用MySQL正确编写这样的查询? 问题答案: 使用CREATE TABLE SELECT语法。 http://dev.mysql.com/doc/refman/5.0/en/create-table- select.html
问题内容: 这是我的表结构。在这里我想随机选择4行,所以我在查询中使用RAND()mysql函数,我的问题是 如何配对到行。我的意思是,我想始终选择pid 2和3。我需要按以下顺序。 我不想打破对A2 A3 或或或等 我使用下面的查询,但对我不起作用 问题答案: turbod与他的答案很接近,他只是随机排序,当您似乎想要按pid排序时,在获得所需的随机行以及与A2和A3有关的行之后:
问题内容: 您好,有人可以告诉我此查询出了什么问题。 我得到的错误是 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以获取在’(@json,’$ [*]’COLUMNS(name VARCHAR(40)PATH’$ .name’,’在第1行 仅出于信息目的,我使用TOAD作为工具将sql实例连接到云。 问题答案: 首先,在这种情况下,您无需在mysql中声明变量。只需使用“ SE
问题内容: 我想选择列名,但我不知道表结构是否会提前更改,因此它可能会发生变化,因此我不能只对带有列名的select语句进行硬编码。我也不想选择每一列。有没有简单的方法可以做到这一点? 我的想法是这两个查询的某种组合,但是我的SQL并不是那么好。 我尝试使用子选择,但没有用。似乎什么都没发生,我没有收到错误,只是没有结果 也许我需要参加吗?..无论如何,任何帮助都将是很大的,谢谢 问题答案: 试试
问题内容: 是否可以遍历这样的表: 变成这个: 目的是选择所有s并将它们用作列。作为行,我喜欢使用所有s。 所有条件: 所有类型 但是如何将它们组合成一个视图或某物。像这样? 如果您喜欢玩数据。这是生成表的脚本: 问题答案: 不幸的是,MySQL没有您基本上想做的功能。因此,您将需要在语句中使用聚合函数: 参见带有演示的SQL Fiddle 现在,如果您要动态执行此操作,这意味着您不知道要转置的列
问题内容: 我正在尝试根据标识符和价格对表进行匹配,例如: 上面的代码返回零行,而如果删除该位,它将返回正确的行。 做… 返回与上述相同的行,并明确指出。然而select无法匹配它。更改为使其生效-但这并不是解决方案。 有没有一种方法可以在执行操作之前将MySQL浮点数强制转换为2位数字,从而完成上述工作(或其他解决方案)? 谢谢! 问题答案: 强制转换为小数对我有用: 但是,您可能首先要考虑将列