3101 件中 1121 - 1130 件を表示
« 前の 10 件 | 次の 10 件 »
Generated Columnの活用例

MySQL5.7から追加されたGenerated Column(生成列)を使って、色々と便利な事が出来るようになりました。
先日、Generated Columnを利用してMySQLの照合順を説明したのでその時に利用した生成列をサンプル兼メモです。

Default: utf8_general_ci or utf8mb4_general_ciの場合
英語の大文字、小文字は同じ文字として扱う。


root@localhost [CONFIRM]> show create table T_Character\G
*************************** 1. row ***************************
       Table: T_Character
Create Table: CREATE TABLE `T_Character` (
  `pid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `string1` char(1) DEFAULT NULL,
  `string2` char(1) DEFAULT NULL,
  `string1_w_string` char(4) GENERATED ALWAYS AS (hex(weight_string(`string1`))) VIRTUAL,
  `string2_w_string` char(4) GENERATED ALWAYS AS (hex(weight_string(`string2`))) VIRTUAL,
  `compare` char(1) GENERATED ALWAYS AS …
[さらに読む]
ORDER BY RAND()はしたくないけどそれなりにランダムな結果セットを返すいくつかの方法を考える

ORDER BY RAND()といえば、「結果セットをランダムにソートし、LIMITと組み合わせることでランダムに指定件数をピックアップしたかのように見える」黒魔術。

( ´-`).oO(そういえばこれも ORDER BY FIELD と一緒で構文だと思っていた人がいたな。。


これもまあRAND()関数を使ってるだけなので、select_listに放り込めば何やってるかわかりやすい。

mysql56> SELECT num, val, RAND() AS rand_val FROM t1 ORDER BY rand_val LIMIT 3;
+-------+----------------------------------+-------------------------+
| num | val | rand_val |
+-------+----------------------------------+-------------------------+
| 94164 | e8d2546088e6be7ff164964c7a07bdb3 | …
[さらに読む]
WHERE .. IN (..)のリストの順番でソートするORDER BY FIELDの仕組み

MySQLには`WHERE col IN (..) ORDER BY FILED(col, ..)`という書き方でINに並べた順番にソートしなおせるという知見がある。


こんなテーブルがあって、

mysql56> SELECT * FROM t1;
+-----+-------+
| num | val |
+-----+-------+
| 1 | one |
| 2 | two |
| 3 | three |
| 4 | four |
| 5 | five |
| 6 | six |
| 7 | seven |
| 8 | eight |
| 9 | nine |
| 10 | ten |
+-----+-------+
10 rows in set (0.00 sec)



INにテキトーな値を並べてやっても、

mysql56> SELECT * FROM t1 WHERE num IN (7, 5, 3);
+-----+-------+
| num | val |
+-----+-------+
| 3 | three |
| 5 | five |
| 7 | seven |
+-----+-------+
3 rows in set (0.00 sec)



[さらに読む]
フィードバック求む: SQLモードの強制(MySQL Server Blogより)

免責事項

この記事はTodd Farmer氏によるMySQL Server Blogの投稿「Feedback Request: Enforcing SQL Mode」(2016/2/9)をユーザが翻訳したものであり、Oracle公式の文書ではありません。

MySQLサーバーには多岐にわたるSQLモードがあります。SQLモードは様々な動作を制御するもので、制御する動作は他のRDBMSの方言(ANSI_QUOTESPIPES_AS_CONCAT)との互換性から、セキュリティー( …

[さらに読む]
MySQLの Milestoneリリース番号のれきし

MySQL 5.8.0-m17 の声が聞こえ始めました。初出はおそらく、yoku08253報告の、これ。>
https://bugs.mysql.com/bug.php?id=80372

そんな中、梶山さんのこんなツイートがあったので、整理してみました。

m17ってどっからの通算なんだ?

— RKajiyama (@RKajiyama) February 19, 2016

MySQL 5.8.0-m17 ~
MySQL 5.7.0-m10 ~ 5.7.6-m16
MySQL 5.6.0-m4 ~ 5.6.6-m9

[さらに読む]
ツイッター公式検索の謎と現時点での対処方法について

(この記事は 2016年 2月時点の観察に基づくものです)

サイト上の記事に関するツイートは当事者にとっても閲覧する側にとっても興味深いものです。ただ、ツイッター公式の検索機能を使って所定の URL を含むツイート一覧を取得する際に、クエリ文字列の指定方法により検索結果が大きく異なるケースがあることに気がつきました。また、その現象はサイトにより一様ではありません。以下にその内容を控えます。お手元のサイトではどうでしょう?

話題の背景

米 Twitter 社は Web パーツとして提供中のツイートボタンへのカウンタ表示を 2015年 11月 20日に廃止しました。

[さらに読む]
「理論から学ぶ データベース実践入門」読書会(20)覚書-2

一昨日の続きです。

トリガーはデータベースリファクタリングによく使われる。
結構闇がある。。。。(これはまた別途まとめたい)

makopi23さんが話してくれたSQLアンチパターンでの忍者屋敷おもしろかった。

SQLアンチパターン・レトロスペクティブ関西にいってきた(Java開発のんびり日記)

■NOT NULL制約の導入
 たとえばフォームなどであらかじめNULLが予定され、その数が知れているような場合は、

[さらに読む]
「理論から学ぶ データベース実践入門」読書会(20)覚書-1

結局放置しておくと、いろいろなものがスタックしてかけなくなるので、なるはや、で覚書として残します。

「理論から学ぶ データベース実践入門」読書会(20)

本日はp.306 ベンチマークテストから、p.314あたりまで。

■ベンチマーク

...といえば、@sh2さんのまとめしか思い出せない。以下の私のブログエントリから参照できます。

Firebirdのパフォーマンス学習のためにTPC-Cを使う


sh2さんのまとめと、松信さんの「正しいベンチマークをするための10のポイント」は必読です。

■マイグレーション

[さらに読む]
CHECK制約をエミュレートする新旧の方法とドメイン (MySQL Server Blogより)

免責事項

この記事はGuilhem Bichot氏によるMySQL Server Blogの投稿「New and old ways to emulate CHECK constraints, DOMAIN」(2016/2/2)をユーザが翻訳したものであり、Oracle公式の文書ではありません。

データの正しさを保つには様々な方法があります。1つは参照整合性で、外部キーとして知られているものです。他の方法として、CHECK制約があります。MySQLでは外部キーをサポートしていますが、 …

[さらに読む]
MySQL 5.7.8から導入されたVersion Tokenとやらの動作

ドキュメントはこちら。
MySQL :: MySQL 5.7 Reference Manual :: 5.1.8.4 Version Tokens

サーバーの持ってるトークンとクライアントが持ってるトークンを比較して、一致しなければエラーにしてくれる仕組み。


取り敢えず何はなくともインストール。version_token.soはバンドルされてるので、ドキュメントの通りにINSTALL PLUGINとCREATE FUNCTIONを貼り付ければOK。


mysql> INSTALL PLUGIN version_tokens SONAME 'version_token.so';
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE FUNCTION version_tokens_set RETURNS STRING SONAME 'version_token.so';
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE FUNCTION version_tokens_show RETURNS STRING SONAME 'version_token.so'; …
[さらに読む]
3101 件中 1121 - 1130 件を表示
« 前の 10 件 | 次の 10 件 »