質問するログイン新規登録

回答編集履歴

3

回答追記:マニュアルページへのリンク追加

2017/03/03 07:34

投稿

Y.H.
Y.H.

スコア7918

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

回答編集:体裁が崩れてたので修正

2017/03/03 07:34

投稿

Y.H.
Y.H.

スコア7918

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

2017/03/03 07:30

投稿

Y.H.
Y.H.

スコア7918

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