MySQL/NodeJS 选择 where/like 个日语字符
MySQL/NodeJS selecting where/like Japanese characters
我有以下查询 select 日语词典中的词汇列表。
SELECT * FROM dictionary
WHERE from_local = 1
AND (word like '%後%' or reading like '%後%')
运行 HeidiSQL 中的这个程序,运行正常。我觉得这可能是一个字符集问题,但如果是这种情况,我认为它根本不会起作用。 (见截图)
当我尝试在我的 Node.js 应用程序中 运行 此查询时,我的问题出现了。结果return为空。
我正在使用 npm's mysql library. The dbQuery method is a helper function I made (Pastebin link)
import { dbQuery } from '../db'
const search = async(query) => {
try {
let sql = 'SELECT * FROM dictionary WHERE'
sql += ' from_local = ? AND'
sql += ' (word = ? OR reading = ?)'
const params = [1, '%'+query+'%', '%'+query+'%']
console.log('dictionary DB', {query, sql, params})
return await dbQuery(sql, params)
}
catch(err) {
console.log('search Error', err)
}
}
Soultion我是傻子
我忘记在查询中将 = 更改为 LIKE
我有以下查询 select 日语词典中的词汇列表。
SELECT * FROM dictionary
WHERE from_local = 1
AND (word like '%後%' or reading like '%後%')
运行 HeidiSQL 中的这个程序,运行正常。我觉得这可能是一个字符集问题,但如果是这种情况,我认为它根本不会起作用。 (见截图)
当我尝试在我的 Node.js 应用程序中 运行 此查询时,我的问题出现了。结果return为空。
我正在使用 npm's mysql library. The dbQuery method is a helper function I made (Pastebin link)
import { dbQuery } from '../db'
const search = async(query) => {
try {
let sql = 'SELECT * FROM dictionary WHERE'
sql += ' from_local = ? AND'
sql += ' (word = ? OR reading = ?)'
const params = [1, '%'+query+'%', '%'+query+'%']
console.log('dictionary DB', {query, sql, params})
return await dbQuery(sql, params)
}
catch(err) {
console.log('search Error', err)
}
}
Soultion我是傻子
我忘记在查询中将 = 更改为 LIKE