0

2 番目のテーブルは、文字列ではなく整数を使用して誤って構成されていました。元のテーブルは文字列を使用していました。(フィールドの文字列は、他の 3 つの数値 ID を 1 つのフィールドに圧縮したものです)

int-to-string を使用した他のテーブルへのリンクには問題があることが判明しました。2番目のテーブルのフィールドを整数から文字列に変更し、既存の整数の前にプレフィックス「00」(ゼロゼロ)を付けたい-これは現在文字列です。それが2つの唯一の違いです。

おそらく「LIKE」で2つを一致させることができると思いますが、完全に一致させたいので、これは1回限りの修正である必要があります。

ありがとう!

ジョリー

4

3 に答える 3

0

(MySQLで)どうですか

SELECT CONCAT('00', CAST(field AS CHAR)) AS newfield

ただし、最初のテーブルを string から int に変換する場合はどうでしょうか。

于 2013-07-12T02:51:02.477 に答える
0

最初に、整数データ列と同じデータを持つ文字列データ型の別の列を追加します。

UPDATE テーブル SET column2 = CAST(column1 AS CHAR)

次に、次のクエリを使用して、列の前に「00」を付けることができます。

UPDATE テーブル SET column2 = CONCAT('00',column2)

これで問題が解決することを願っています

于 2013-07-12T03:09:05.127 に答える
0

次のように、最初に列のデータ型を変更したい MySql を仮定します。

ALTER TABLE tab MODIFY COLUMN IDBoth VARCHAR(10); -- or what ever size is needed

次に、次のような連結で更新を行います。

UPDATE TAB as t1
JOIN tab as t2
ON t1.id1 = t2.id2 -- Add additionation join criteria if needed to get right join
SET t1.IDBOTH = CONCAT('00', t1.IDBOTH);

このSQLFIDDLEで実際に見てください

于 2013-07-12T03:17:56.930 に答える