当列名和值相等时,使用WHERE的SELECT查询返回所有行

时间:2019-05-21 07:23:27

标签: mysql select

我对SELECT查询的行为感到困惑。偶然地,我将 .csv 文件的标题行读到了表中。这意味着表中现在有一行,每一行都有相应的列值。

但是像这样的SELECT

select * from `mytablename` where segmentering=`segmentering`;

返回表中的所有行。

为什么MySQL会忽略这种情况?

4 个答案:

答案 0 :(得分:1)

它应该是'segmentering'不能带有反勾号(``)

select * from `mytablename` where segmentering='segmentering'

答案 1 :(得分:1)

问题是您对字符串使用单引号`对象标识符。 而不是使用普通的单引号:

git add .

答案 2 :(得分:1)

尝试一下

select * from `mytablename` where segmentering='segmentering';

删除``并替换'';

我希望它对您有用

答案 3 :(得分:1)

我想问题在于您要在back quotes(``)和value字段中添加。反引号将用于指定列或表的名称。不应与该值一起使用。

尝试使用,

select * from `mytablename` where `segmentering`='segmentering';

OR

select * from `mytablename` where segmentering='segmentering';