2009-06-25 11 views
1

私はmysqlを使用しています。私はstring1のようなデータが挿入されている一つのフィールド::によってconcated string2の 2つの文字列:: で 今私は2番目の文字列を取得したい、 すべてのボディは、このために私を助けてもらえ、事前MySqlの文字列操作

+0

詳細をお知らせください。どのようなクエリuをしたい –

答えて

2
SELECT SUBSTRING_INDEX('string1::string2', '::', -1) 
+0

+1ああ、冷たい。私はその小さな宝石について知らなかった。 – Sampson

+0

おかげでね、その作品は本当に..ありがとう – Avinash

3

で おかげであなたがいることを実感これはひどい考えですか?リレーショナルデータベースシステムには理由があるため、列があります。これを行うと、システムに対して作業しています。これはよく知られている反パターンです。 分離値には別々の列を実際に使用するようにしてください。

つまり、MySQLの文字列操作関数を使用して値を取得できます。

これはMySQLの文字列関数の概要は次のとおりです。 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

彼らと一緒に作業する方法を説明する上記のページにコメントがあります。または、SUBSTRING_INDEX()をexplained in the other answersとして使用することもできます。

+0

これは、MySQLはこの非常に事を達成する機能を持っているようです。私はこれを最初に知っていたと思ったが、SUBSTRING_INDEX()は明らかにこの非常に簡単なことを明らかに達成した。 – Sampson

+0

おっと、そうです、それを知らなかったのです。編集された答え。 – sleske

+0

ここから 'CONCAT()'について知りました。これは私がやりたいことでした。 @sleskeのリンクをありがとう! – icedwater

0

前述のように、これはひどいデザインです。複数の日付に複数の列を使用する必要があります。そうではなく、ワイルドカードを使って値を見つけることができます。例えば、あなたが探していることを言ってください09/08/2009 :: 09/09/2009、

SELECT SUBSTRING('date',-10) 
FROM myTable 
WHERE id = 1; 

あなたの日付の最後の10文字を返します。この場合も、これは「良い」解決策ではありません。 gooodの解決策は、データベース自体を修正することです。