我找不到解决问题的方法。
以下是一个例子:
A有一个表,例如:private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
// Check if pressed key is `Enter` key
if (e.KeyChar == (char)Keys.Return){
button1.PerformClick();
}
}
。并且它有一个包含由“,”分隔的大量数字的列。这些数字代表了一些事情,但现在并不相关。
表Person
:
Person
我想通过此列nm_name: Jonas
nm_email: jonas@example.com
ds_numbers: 1,2,3,5,17,27,67,77,
创建一个过滤表人搜索的查询。但是用户将通过过滤器选择女巫号码,例如,如果用户选择此列中的至少1个号码,则寄存器将会到来。
如果我选择,例如,“3”将会出现这个寄存器,或者“3,55,12”也会出现,因为至少有一个值需要在字符串中。
问题是,我不能使用像'%4%',因为我会返回4,41,74 ...任何不同的解决方案?
重要:我在Java中挂载此查询,因此我可以使用Java功能,例如Loops,但我没有找到解决方案。有什么想法吗?
我正在使用MySQL。
答案 0 :(得分:0)
您可以使用带有LIKE运算符的通配符轻松进行简单的文本搜索。
SELECT ds_numbers FROM table WHERE ds_numbers LIKE '%3%'
如果没有,那么您可以尝试这个问题的答案中提到的全文搜索功能:Search for string within text column in MySQL
答案 1 :(得分:0)
您可以使用LIKE,但使用当前格式,您将获得误报。 '%4%'也将匹配数字40或14。
理想情况下,更改数据以使用分隔符存储数字。 " | 3 |,| 55 |,| 32 |&#34 ;. 然后,当您选择使用LIKE'%| 3 |%'时,它只会匹配| 3 |。
您可以使用LIKE'%3,%',但如果3是字符串中的最后一个数字,则不会匹配最后一个数字。