mysql php在关键字之前选择句子

时间:2017-03-18 14:12:16

标签: php mysql regex

我有一个表格,其中列中的某些条目由'和' /'或'分隔。关键字。我想知道是否可以检查是否有'和'或者是&或39在单元格中并返回值。

Example table:

id  company      file                           users
1    ABC      file1 and file2 and file3       men and women
2    DEF      file1                             men
3    GHI      file2                          women or men
4    jkl      file1 or file2                      women
5    mno      file1 and file2                    men

如何检索该公司ABC分别有file1和file2。我想根据文件类型附加文件扩展名,这就是为什么需要它们。

换句话说,我将为选定的ID'添加一行。在表中然后我想看看文件是否有'和'或者'或'或者只是一个条目。将表格标准化是一个好主意。如果是的话,请提出任何建议。或者在获得所需的行后,使用mysql或PHP中的关键字执行REGEXP函数是否方便。我有大约1000个条目。欢迎任何建议。

由于

2 个答案:

答案 0 :(得分:0)

您可以使用LIKE

$ sql =' SELECT公司,文件,用户         从表         文件LIKE"%和%"或提交LIKE"%或%"';

〜专利

答案 1 :(得分:0)

规范化方式:

创建一个像这样的表格&继续简单的查询,这是一般的想法,而不是详细的解决方案,但它的工作原理:

exampleId    |    file    |    type
-------------|------------|----------
1            |    file1   |     -
1            |    file2   |    and
1            |    file3   |    and
2            |    file1   |     -
3            |    file2   |     -
4            |    file1   |     -
4            |    file2   |    or 
5            |    file1   |     -
5            |    file2   |    and   

MySQL中的Regexp:

您可以在MySQL中使用内部Regexp。如果找到and / or,则返回1,否则将返回0

$query = SELECT 'file' REGEXP '(and|or)+';

PHP方式:

只需检索文件列&之后,您可以and检查or / strpos()。它会告诉您文件列中是否有andor