我有一个表格,其中一列有一些由"and"/"or"关键字分隔的条目。我想知道是否可以检查单元格中是否有"和"或"或"并返回值。
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 分别具有文件 1 和文件 2。 我想根据文件类型附加文件扩展名,这就是为什么需要单独使用它们的原因。
换句话说,我将在表中为选定的"id"获取一行,然后我正在查看文件是否具有"and"或"or"或只是一个条目。规范化表是个好主意吗?如果是,请对此提出任何建议。或者,在我获得所需的行后,使用关键字在mysql或PHP中执行REGEXP函数是否方便。我有大约 1000 个条目。欢迎任何建议。
谢谢
规范化方式:
创建一个这样的表并继续简单的查询,这是一般的想法,不是详细的解决方案,但它有效:
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 中的正则表达式:
你可以在 MySQL 中使用内部正则表达式,如果找到 and
/or
,则返回 1
,否则返回0
:
$query = SELECT 'file' REGEXP '(and|or)+';
<小时 />PHP方式:
只需检索文件列,然后您就可以通过strpos()
检查and
/or
。它会告诉您文件列中是否有and
或or
。
您可以使用 LIKE
$sql ='选择公司、文件、用户 从表 其中文件如"%和%"或文件如"%或%"';
~帕特