【问题标题】:MySQL PDO - What is the best way to complete a request with a variable?MySQL PDO - 用变量完成请求的最佳方法是什么?
【发布时间】:2016-03-12 09:48:01
【问题描述】:

使用 MySQL PDO 完成此类请求的最佳方法是什么?

它在 MySQL Workbench 中运行良好...

SET @sosa = 817595147;
SET @sequence = (SELECT REPLACE(seq, '-', ',') FROM lignee WHERE sosa = @sosa);

SELECT fullname_id, fullname
FROM fullname
WHERE FIND_IN_SET (fullname_id , @sequence)
ORDER BY FIND_IN_SET (fullname_id , @sequence) DESC

那么结果应该是:

14354   DAILLY Gertrude (1068-1119)
13880   DE BELLOY Blanche (-)
13375   DE HORNOY Auguste (1121-1179)
...
532 LEPINGLE Eugène Alexandre (1909-1981)
531 LEPINGLE Raymonde Marie Emilie (1939-)
332 LHUILLIER Michel Eugène Maurice (1962-)

注意:

@sequence = '332-531-532-533-828-576-8471-10033-10389-10709-11503-11853-11959-12020-12070-12101-12135-12163-12185-12203-12264-12302-12355-12447-12603-12613-13019-13375-13880-14354'

提前谢谢你。

【问题讨论】:

    标签: mysql variables pdo sequence


    【解决方案1】:

    有几种方法可以做到这一点。

    首先是启动单独的查询来初始化您的变量。但是我首选的方法是在连接中设置变量,就像这样。

    SELECT a.fullname_id, a.fullname
    FROM fullname as a
    JOIN (SELECT @sosa := 817595147 as sosa) as b
    JOIN (SELECT @sequence := (SELECT REPLACE(seq, '-', ',') FROM lignee WHERE sosa = @sosa) as sequence) as c
    WHERE FIND_IN_SET (fullname_id , @sequence)
    ORDER BY FIND_IN_SET (fullname_id , @sequence) DESC
    

    【讨论】:

    • 效果很好!我也在考虑查询的分离,但是你的方法只使用一个查询对我来说更好,恕我直言。非常感谢。
    • 没有问题!祝你的项目好运
    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 2023-03-15
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    相关资源
    最近更新 更多