Database changed
mysql> select * from userinfo;
+-----------+----------+-----------------------+------------+
| firstname | lastname | username | password |
+-----------+----------+-----------------------+------------+
| asif | kolu | ashufound | 123456 |
| faisal | samad | tfhgfhgfh@gmail.com | 123456 |
| kamran | shafat | kamthemaam | kamoos |
| ubaid | mir | sadfsfsff@yahoo.com | qwertasd |
| majid | mir | zsffsa | afdfdsf |
+-----------+----------+-----------------------+------------+
5 rows in set (0.00 sec)
mysql> SELECT * from userinfo WHERE lastname = 'mir';
Empty set (0.10 sec)
mysql> SELECT * from userinfo WHERE lastname='mir';
Empty set (0.00 sec)
这段代码有什么问题,简单的where子句不起作用?实际上问题出在插入的代码中我认为
答案 0 :(得分:1)
您桌面上的姓氏在mir
mir
^---^---look and remove spaces from here in your table
答案 1 :(得分:1)
我在这里选择了查询,其中where子句不工作查询是
select * from table_t where id = '96'
此查询产生0行但
当我尝试
时select * from table_t where id like '96'
此查询工作正常。
当我尝试像
这样的列名时select id from table_t where id like '96'
返回0行
id是自动生成的主键没有空格
为什么???? 有任何数据库问题??? 这个查询在我的本地机器上运行正常,但是当我在网上尝试它时会出现行为异常。
感谢名单。
答案 2 :(得分:0)
1-你可以在" mir"。
之前或之后留出空间2-你可能会在' mir'之前或之后有特殊(不可见)字符。甚至在它们的角色之间。
要解决这个问题,我建议先这样做:
Update userinfo
set lastname = 'mir'
where (username = 'sadfsfsff@yahoo.com') or (username = 'zsffsa')
然后,运行此检查:
Select * from userinfo where lastname = 'mir'
答案 3 :(得分:0)
我看到了一些很好的答案,但是如果您无法为每个名称更新整个数据库中的前导或尾随空格,则可以稍微改写一下选择。如果是空间问题,请试试这个。
SELECT * from userinfo WHERE TRIM(lastname) = TRIM('mir')
如果这不起作用,请尝试LIKE
,看看是否有结果。这可能有助于调试。
SELECT * FROM userinfo WHERE lastname LIKE '%mir%'