MySQL PDO - 用变量完成请求的最佳方法是什么?

标签 mysql variables pdo sequence

使用 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/

相关文章:

javascript - 检查javascript函数是否存在并执行它

php - 如何使用PHP PDO查询关键字

PHP准备语句: Why is this throwing a fatal error?

php - PDO 查询绑定(bind)字符串而不是整数返回结果

stored-procedures - 如何循环并复制MySQL大表的每一行?

sql - 使用内部联接更改此查询?

mysql - 计算两个值在同一行中出现的次数

sql - 使用当前行值更新变量

MySQL 复制不工作主从

javascript - 如何创建一个每次都会生成一个新变量的 for 循环