mysql:15394
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Sun, 12 Sep 2010 21:44:50 +0900
Subject: [mysql 15394] Re: 文字列を返す関数で質問です
とみたです。 On Fri, 10 Sep 2010 14:05:55 +0900 こんにちは伊藤です <ito.takahiro.cp@xxxxxxxxxx> wrote: > 文字列型を返す関数で、「ん?」と思われる現象です。 > クエリで文字列を返す関数を使うと、リターンにカンマが入っている場合、カン > マの前しか取得されないようです。 〜中略〜 > ↓下記は正常 > select getXX(1) ⇒ 111,222 > > ↓これはNG > select * from テーブルA where col1 in (getXX(1)) > ⇒col1=111しか取得できない。col1=222もほしかった! > > クエリ文中で使うとリターンにカンマがある場合、カンマの前しか返さないらし > い。リターンをvarcharやcharにしても同じでした。 これは次のように評価されているということです。 select * from テーブルA where col1 in ('111,222') つまり in の中に 111 と 222 という2つの値を指定しているんではなく て、'111,222' という1つの値を指定してることになってます。 「111 in ('111,222')」は真だけど「222 in ('111,222')」は偽なので、111 しか取得できないんですね。 -- とみたまさひろ <tommy@xxxxxxxxxx> 日本MySQLユーザ会 http://www.mysql.gr.jp
15393 2010-09-10 14:05 [こんにちは伊藤です <] 文字列を返す関数で質問です -> 15394 2010-09-12 21:44 ┗[とみたまさひろ <tomm] 15395 2010-09-13 10:59 ┗[こんにちは伊藤です <] 15396 2010-09-14 11:59 ┗[とみたまさひろ <tomm] 15397 2010-09-14 13:28 ┗[こんにちは伊藤です <]