bashでMySQLのselect結果を出力する方法
bashでMySQLのselect結果を出力する方法を紹介します。
1.問題点
MySQLで次のようなデータベース・テーブルを作成し、2件のデータをinsertしました。
mysql> describe foo;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(32) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> select * from foo;
+------+------+
| id | name |
+------+------+
| 1 | aaa |
| 2 | bbb |
+------+------+
2 rows in set (0.00 sec)
が、このデータをbashで出力する方法が分かりません。
ということで、bashでMySQLのselect結果を出力する方法を紹介します。
2.bashでMySQLのselect結果を出力する
bashでMySQLのselect結果を出力するには次のようにします。
#!/bin/sh
server="localhost"
database="test"
user="root"
pass="[パスワード]"
sql="select * from foo"
result=`mysql -h $server -D $database -u $user -p"$pass" -N -e "${sql}"`
echo "$result"
実行結果
# ./test.sh
1 aaa
2 bbb
PayPalにおける銀行口座への資金移動の理由
PayPalにおける銀行口座への資金移動の理由を調べてみました。
PayPalから資金移動依頼のメール(下記抜粋)が届きました。
PayPalは、世界各地で事業を展開しているすべての場所で、現地の法律および規制を遵守するよう努めています。日本の決済サービス法の改正により導入された新しい要件に基づき、弊社は日本でのサービスについて、いくつかの新しい措置を導入しました。
PayPal Japanでは、使用する予定のない資金をお客さまのPayPalアカウント残高に保持されないよう求めています。これは、原則として、お客さまが今月中に使用する予定のある残高のみを保持する必要があることを意味します。
(中略)
PayPal残高が100万円を超える場合は、毎月通知をお送りします。次の通知は2月上旬に送信されます。
資金を移動する理由がよくわからないので、2021年5月1日にリリースされたPayPalの記事を読み返してみました。
が、ここでも資金を移動する理由がよくわかりません。
ただ、資金決済法の改正が影響していることはわかりました。
さらにネットで調べたところ、こちらの記事で理由がわかりました。
「PayPayマネー」の残高上限が500万円から100万円に“減額” 6月1日以降
要約すると、下記の通りです。
まず、資金決済法改正で、資金移動業者が「第一種」「第二種」「第三種」に細分化されます。
- 第一種:認可制、取引金額に上限なし
- 第二種:登録制、取引金額は100万円まで
- 第三種:登録性、取引金額は5万円まで
さきほどの「資金決済法改正にあたってのご案内」で、PayPalのユーザー(プレミアアカウント及びビジネスアカウント)は第二種としたため、上限を100万円にせざるを得なかったものと思われます。
ちなみに、資金移動業者が第一種資金移動業者になるには、認可を取得する必要があります。
また、第一種資金移動業者には下記の滞留規制が課されます。
- 送金先や送金日時の指示がない資金の受け入れの禁止
- 資金処理に必要な期間を超える資金の滞留の禁止
上記の「『PayPayマネー』の残高上限が500万円から100万円に“減額” 6月1日以降」では、100万円を超える残高を持つユーザーは、改正法令の規定により、サービスの利便性を享受しきれなくなってしまう、と書かれており、PayPalは上記ユーザーについて利便性を重視して、第二種とする判断をされたものと思われます。
コンテンツデータでMTEntriesWithSubCategoriesの代替テンプレートタグ
コンテンツデータでMTEntriesWithSubCategoriesの代替テンプレートタグを紹介します。
1.問題点
コンテンツデータでMTEntriesWithSubCategoriesと同等のタグ(MTContentsWithSubCategories)はありません。
ということで、コンテンツデータでMTEntriesWithSubCategoriesの代替テンプレートタグを紹介します。
2.前提条件
- コンテンツタイプ名:products
- コンテンツタイプに設定しているコンテンツフィールドのカテゴリセット名:field_category
- カテゴリセット名:category
- カテゴリセットの構造:下記(2階層まで)
cat1
cat1-1
cat1-2
cat1-3
3.代替テンプレートタグ(親カテゴリが1つの場合)
赤字の部分は自由に書き換えてください。
<mt:CategorySets name="category">
<mt:TopLevelCategories>
<mt:HasParentCategory>
<mt:setvarblock name="all"><mt:var name="all"> OR <mt:var name="top">/<mt:CategoryLabel></mt:setvarblock>
</mt:HasParentCategory>
<mt:HasNoParentCategory>
<mt:CategoryLabel setvar="top">
<mt:setvarblock name="all"><mt:var name="top"></mt:setvarblock>
</mt:HasNoParentCategory>
<mt:SubCatsRecurse>
</mt:TopLevelCategories>
</mt:CategorySets>
<mt:Contents content_type="products" field:field_category="$all">
<mt:ContentLabel><br />
</mt:Contents>
4.3の解説
テンプレートタグの前半で次のようなカテゴリ名の一覧を取得します。
cat1 OR cat1/cat1-1 OR cat1/cat1-2 OR cat1/cat1-3
この文字列を、後半のmt:Contentsタグの"field:field_category"オプションの値に設定します。
5.代替テンプレートタグ(親カテゴリが2つの場合)
赤字の部分は自由に書き換えてください。
<mt:setvar name="counter" value="0">
<mt:CategorySets name="category">
<mt:TopLevelCategories>
<mt:HasParentCategory>
<mt:setvarblock name="all[$counter]"><mt:var name="all[$counter]"> OR <mt:var name="top">/<mt:CategoryLabel></mt:setvarblock>
</mt:HasParentCategory>
<mt:HasNoParentCategory>
<mt:setvar name="counter" op="++">
<mt:CategoryLabel setvar="top">
<mt:setvarblock name="all[$counter]"><mt:var name="top"></mt:setvarblock>
</mt:HasNoParentCategory>
<mt:SubCatsRecurse>
</mt:TopLevelCategories>
</mt:CategorySets>
<mt:setvarblock name="filter"><mt:Var name="all" index="1"> OR <mt:Var name="all" index="2"></mt:setvarblock>
<mt:Contents content_type="products" field:field_category="$filter">
<mt:ContentField content_field="BookTitle"><mt:ContentFieldValue></mt:ContentField>
</mt:Contents>
6.5の解説
CategorySetsタグの中で、次のようなカテゴリ名の一覧を、親カテゴリ単位に配列の変数に取得します。
cat1 OR cat1/cat1-1 OR cat1/cat1-2 OR cat1/cat1-3
取得した配列変数をORで連結して、さきほどと同様、後半のmt:Contentsタグの"field:field_category"オプションの値に設定します。
親カテゴリが3つ以上の場合は、
<mt:setvarblock name="filter"><mt:Var name="all" index="1"> OR <mt:Var name="all" index="2"></mt:setvarblock>
の部分について、赤字で示す、
<mt:setvarblock name="filter"><mt:Var name="all" index="1"> OR <mt:Var name="all" index="2"> OR <mt:Var name="all" index="3"></mt:setvarblock>
のように増やしてください(もうちょっとエレガントな方法はあると思いますが)。