【问题标题】:How to loop through each row in MySQL table and get rows if conditions match如果条件匹配,如何遍历 MySQL 表中的每一行并获取行
【发布时间】: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


【解决方案1】:

在这个基本示例中,将 SQL 作为(现实生活中的)语言:

给我一​​个匹配条件 loginname= 1 char of first name after lastname 的表的所有行

->

SELECT * FROM LLS_USERS where USR_LOGIN= LEFT(USR_FIRST_NAME, 1)||USR_LAST_NAME

就是这样,这就是 SQL 的美妙之处

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-12
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多