<p>If you're looking to see if the search term matches <em>any</em> row/column value in the field, then it should work: <code>myTableFieldHandle::SKU3</code></p>

<p>If you are looking to find the exact row/column that matched, you'd have to do some custom development.</p>

<p>Even though a table field's data is stored as a JSON blob in the Craft content table, search index keywords are extracted from every row/column and saved as a single row in the search index table.</p>

CC BY-SA 4.0
2018-11-21T17:05:01.480Z
Just looked into this. If i search for SKU then SKU3 will still return. Wouldn't it be easy to add multiple Index Rows for each column/row of data. This way people can search for exact values within a column. It shouldn't cause any problems with how the search works now but adds the benefit of column exact search. The only work around i can see at the moment is to search like this: myTableFieldHandle::"SKU %"
Dean Sanderson
CC BY-SA 4.0
2018-11-22T00:10:39.070Z
Currently the search index is indexed on a per field, per site basis, so it would be a bit of a change.
Brad Bell
CC BY-SA 4.0
2018-11-18T00:56:17.917Z
2018-11-18T00:56:17.917Z
Brad Bell
<p>Yeah because the data is stored as a JSON blob, I'm not sure this is going to be possible without retrieving all the data, parsing the JSON, then doing the exact match search via PHP, and then returning the results subset.</p>

CC BY-SA 4.0
2018-11-17T11:05:38.853Z
As i expect. Not sure how the search index works, but i am sure it wouldn't take that much work to split the table data into the search index? EG

Column 1, Column 2
SKU1,   TITLE
SKU2,   TITLE

Index linking to that field and entry
SKU1
SKU2
TITLE
TITLE
Dean Sanderson
CC BY-SA 4.0
2018-11-16T17:22:58.393Z
2018-11-16T19:59:32.727Z
2018-11-16T19:59:32.727Z
andrew.welch
<p>Am I correct in saying you cannot search for specific text in a table field. e.g.</p>

<p>Table Fields Might hold the following data:</p>

<ul>
<li>SKU1</li>
<li>SKU2</li>
<li>SKU3</li>
<li>SKU33</li>
</ul>

<p>I then want to search for items that only return SKU3 not SKU33.</p>

<p><code>body::salty</code> search will not work because i believe the field is stored as JSON.</p>

<search><table-field>
Query Craft CMS Table Field for exact values
# Query Craft CMS Table Field for exact values

(Asked by: username_0 on 2018-11-16)

Am I correct in saying you cannot search for specific text in a table field. e.g.

Table Fields Might hold the following data:

* SKU1
* SKU2
* SKU3
* SKU33

I then want to search for items that only return SKU3 not SKU33.

`body::salty` search will not work because i believe the field is stored as JSON.

**Tags:** search, table-field

---

## 2 answers

### Answer by username_1 on 2018-11-18. Score: 1 | Accepted answer

If you're looking to see if the search term matches *any* row/column value in the field, then it should work: `myTableFieldHandle::SKU3`

If you are looking to find the exact row/column that matched, you'd have to do some custom development.

Even though a table field's data is stored as a JSON blob in the Craft content table, search index keywords are extracted from every row/column and saved as a single row in the search index table.

> **Comments:**
> **username_0**: Just looked into this. If i search for SKU then SKU3 will still return. Wouldn't it be easy to add multiple Index Rows for each column/row of data. This way people can search for exact values within a column. It shouldn't cause any problems with how the search works now but adds the benefit of column exact search. The only work around i can see at the moment is to search like this: myTableFieldHandle::"SKU %"  
> **username_1**: Currently the search index is indexed on a per field, per site basis, so it would be a bit of a change.  

---

### Answer by username_2 on 2018-11-16. Score: 2

Yeah because the data is stored as a JSON blob, I'm not sure this is going to be possible without retrieving all the data, parsing the JSON, then doing the exact match search via PHP, and then returning the results subset.

> **Comments:**
> **username_0**: As i expect. Not sure how the search index works, but i am sure it wouldn't take that much work to split the table data into the search index? EG  Column 1, Column 2 SKU1,   TITLE SKU2,   TITLE  Index linking to that field and entry SKU1 SKU2 TITLE TITLE  

---

