【发布时间】:2013-12-22 22:08:29
【问题描述】:
对于我的申请,我想做以下事情:
SELECT *
FROM `LLS_USERS`
LIMIT 0,111
WHERE
(`USR_LOGIN`=
(CONCAT(
(SELECT LEFT(`USR_FIRST_NAME`, 1) FROM `LLS_USERS`;),
(SELECT `USR_LAST_NAME`FROM `LLS_USERS`;)
);
)
)
基本上,我需要选择用户表中用户的登录名与用户名的第一个首字母与用户的姓氏相匹配的所有行。因此,SQL 查询将为我生成一个包含所有选定行的表,其中在 phpMyAdmin 中是这样的。 我知道我的数据库中目前有 111 个用户。
有人知道我的语法有什么问题吗?
更新:解决方案是:
SELECT *
FROM `LLS_USERS`
WHERE (
`USR_LOGIN` = ( left( `USR_FIRST_NAME` , 1 ) || `USR_LAST_NAME` )
)
LIMIT 0 , 111;
【问题讨论】:
-
嗯,我只是删除(子)选择并使用:
where usr_login=left(USR_FIRST_NAME)||USR_LAST_NAME -
sry '||'是一些(或许多)方言中 concat() 的快捷方式
-
你能展示一下你的表结构吗?
-
@halfbit,谢谢!那成功了。虽然你仍然需要 ,1 如果你只想要第一个字母。干杯!
-
@user2905014,我忘了顶部复制',1'
标签: mysql sql phpmyadmin multiple-select