yoku0825といいます。

肌感覚だと、

>SELECT などのほかのステートメントでは、予想した結果が得られることもありますが、これは保証されません。

https://dev.mysql.com/doc/refman/5.6/ja/user-variables.html


と言っているにも関わらず、使っちゃって事故になるケースが多いからかな…とか思っています。

ステートメントベースだとレプリケーションアンセーフですし、最近の「データを守るような硬い動作」に寄せている流れなんではないでしょうか?


> ステートメントベースレプリケーションで、セッション変数は、テーブルを更新するステートメントで使用されるときに正しく複製されません。

https://dev.mysql.com/doc/refman/5.6/ja/replication-features-variables.html

2018年10月27日(土) 0:12 とみたまさひろ <tommy@mysql.gr.jp>:
とみたです。

On Fri, 26 Oct 2018 23:11:11 +0900 (JST)
<mysql201706mailing@yahoo.co.jp> wrote:

> 明智重蔵です。
> MySQL8.0の機能について調べていて、
> MySQL8.0のマニュアルで興味深い記述を見つけました。
>
> https://dev.mysql.com/doc/refman/8.0/en/user-variables.html
>
> >Previous releases of MySQL made it possible to assign a value to a user variable in statements other than SET.
> >This functionality is supported in MySQL 8.0 for backward compatibility
> >but is subject to removal in a future release of MySQL.
>
> 要約すると、Set文以外(例えばSelect文)でのユーザ変数への値の代入機能は削除予定です。
> という記述なのですが、

おー、こんな記述が。5.7のマニュアルにもありますね。

https://dev.mysql.com/doc/refman/5.7/en/user-variables.html

| It is also possible to assign a value to a user variable in statements other than SET.
| (This functionality is deprecated in MySQL 8.0 and subject to removal in a subsequent release.)

> 削除予定になった経緯が分かる方っていますか?
> MySQL開発者のブログとかに書かれてませんかね?

何故でしょうね。うーむ、時々便利に使ってたのに…。

--
とみたまさひろ <tommy@mysql.gr.jp>
日本MySQLユーザ会 http://www.mysql.gr.jp