我有一个名为products
的表,其中包含以下架构和数据:
| product_id | name | description | price | location |
| NUMBER | VARCHAR2 | CLOB |NUMBER(9,2)| SDO_GEOMETRY |
--------------------------------------------------------------------------
| 27 | Nexus 4 | Android phone | 160 | null |
当我发出SELECT * FROM products;
查询时,我会收回数据。一切都很好。但是我希望能够使用CONTAINS()
在一个地方取回结果,如下所示:
SELECT "PRODUCT_ID", "NAME", "DESCRIPTION", "PRICE"
FROM "PRODUCTS"
WHERE CONTAINS("NAME", 'nexus') > 0;
但是我没有得到任何结果。当我将nexus
更改为Nexus
或Nexus 4
时,会发生同样的事情。我认为这可能与name
是一个已解决的单词有关,但description
列也会发生同样的事情。
答案 0 :(得分:0)
原来这是因为我在同一个表上有两个文本索引,用于名称和描述。我删除了一个用于描述并且它有效。
答案 1 :(得分:0)
如果您不使用混合/小写表格和列名称,则可以在查询中删除所有“字符...”
答案 2 :(得分:0)
SELECT product_id, name, description, price FROM product WHERE CONTAINS(name, '%Nexus%') > 0;