回答編集履歴
3
回答追記:マニュアルページへのリンク追加
answer
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
外れたのでちょっと調べてみました。
|
2
2
|
`--raw` (`-r`) オプションを付けるといいようです。
|
3
|
+
※[https://dev.mysql.com/doc/refman/5.6/ja/mysql-command-options.html#option_mysql_raw](https://dev.mysql.com/doc/refman/5.6/ja/mysql-command-options.html#option_mysql_raw)
|
4
|
+
|
3
5
|
```
|
4
6
|
$ mysql -N <<EOF
|
5
7
|
> SELECT replace(CONCAT('abc',CHAR(92),'def'),'\\\\', '\\\\ ') result;
|
2
回答編集:体裁が崩れてたので修正
answer
CHANGED
@@ -1,27 +1,26 @@
|
|
1
1
|
外れたのでちょっと調べてみました。
|
2
2
|
`--raw` (`-r`) オプションを付けるといいようです。
|
3
3
|
```
|
4
|
-
$ mysql <<EOF
|
4
|
+
$ mysql -N <<EOF
|
5
|
-
> SELECT replace(CONCAT('abc',CHAR(92),'def'),'\\\\', '\\\\ ');
|
5
|
+
> SELECT replace(CONCAT('abc',CHAR(92),'def'),'\\\\', '\\\\ ') result;
|
6
6
|
> EOF
|
7
|
-
replace(CONCAT('abc',CHAR(92),'def'),'\\', '\\ ')
|
8
7
|
abc\\ def
|
9
|
-
$ mysql --raw <<EOF
|
8
|
+
$ mysql -N --raw <<EOF
|
10
|
-
> SELECT replace(CONCAT('abc',CHAR(92),'def'),'\\\\', '\\\\ ');
|
9
|
+
> SELECT replace(CONCAT('abc',CHAR(92),'def'),'\\\\', '\\\\ ') result;
|
11
10
|
> EOF
|
12
|
-
replace(CONCAT('abc',CHAR(92),'def'),'\\', '\\ ')
|
13
11
|
abc\ def
|
14
|
-
|
12
|
+
````
|
15
13
|
|
16
14
|
----
|
15
|
+
以下は回答として間違い。
|
17
16
|
|
18
17
|
`<<__EOF__`ではなく`<<'__EOF__'`としてください。
|
19
18
|
ヒアドキュメント内でのbashによるエスケープ処理が回避されます。
|
20
19
|
|
20
|
+
|
21
21
|
```bash
|
22
22
|
#!/bin/sh
|
23
23
|
mysql -N -uroot -ptest testdb<<'__EOF__'
|
24
24
|
select replace(name, ' ', '\\ ') from test
|
25
25
|
__EOF__
|
26
|
-
|
27
26
|
```
|
1
回答変更:--raw
answer
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
外れたのでちょっと調べてみました。
|
2
|
+
`--raw` (`-r`) オプションを付けるといいようです。
|
3
|
+
```
|
4
|
+
$ mysql <<EOF
|
5
|
+
> SELECT replace(CONCAT('abc',CHAR(92),'def'),'\\\\', '\\\\ ');
|
6
|
+
> EOF
|
7
|
+
replace(CONCAT('abc',CHAR(92),'def'),'\\', '\\ ')
|
8
|
+
abc\\ def
|
9
|
+
$ mysql --raw <<EOF
|
10
|
+
> SELECT replace(CONCAT('abc',CHAR(92),'def'),'\\\\', '\\\\ ');
|
11
|
+
> EOF
|
12
|
+
replace(CONCAT('abc',CHAR(92),'def'),'\\', '\\ ')
|
13
|
+
abc\ def
|
14
|
+
----
|
15
|
+
|
16
|
+
----
|
17
|
+
|
1
18
|
`<<__EOF__`ではなく`<<'__EOF__'`としてください。
|
2
19
|
ヒアドキュメント内でのbashによるエスケープ処理が回避されます。
|
3
20
|
|