質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Q&A

解決済

1回答

608閲覧

Go言語でSQLiteに自作関数を登録する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

0グッド

0クリップ

投稿2018/01/02 06:36

編集2018/01/02 06:38

Python の SQLite3 にはcreate_functionという関数があり、Python側で定義した関数をSQLite側に登録して使うことができます。たとえば String を 2 つ取り、その文字列長の差の絶対値を返す関数 func を定義して、それを SQLite 側で使用した例を以下に示します。

python

1import sqlite3 2 3def func(x, y): 4 return abs(len(x) - len(y)) 5 6con = sqlite3.connect(':memory:') 7con.execute('create table foo(val text)') 8con.execute('insert into foo(val) values ("tomato"), ("potato"), ("onion"), ("mushroom")') 9con.create_function('func', 2, func) 10 11c = con.cursor() 12c.execute('select val, func(val, "hello") from foo') 13 14for row in c: 15 print(row[0], row[1])

このプログラムを実行すると、以下の文字列が出力されます。

tomato 1 potato 1 onion 0 mushroom 3

Go言語でも同じようなことができると嬉しいのですが、そのような機能を持つライブラリはありますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

投稿2018/01/02 12:13

編集2018/01/02 12:14
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mattn

2018/01/03 23:47

リポジトリの example の下に幾つかサンプル置いてますので参考になればどうぞ。
退会済みユーザー

退会済みユーザー

2018/01/04 03:12

おぉ、これは役立ちそうです。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問