使用 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'
提前谢谢你。
最佳答案
有几种方法可以做到这一点。
第一个是启动单独的查询来初始化您的变量。然而,我的首选方法是在连接中设置变量,就像这样。
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
关于MySQL PDO - 用变量完成请求的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35956080/