Question: Say I have a table called "xml" that stores XML files in a single column "data". How would I write a MySQL query that run an XPath and return only rows matching that XPath?

Answer: 
```
SELECT * FROM xml
WHERE EXTRACTVALUE(data, '<xpath-expr>') != '';

```

You should note, however, that there are limitations to MySQL's support of XPath.

* `EXTRACTVALUE()` returns only CDATA.
* Not all XPath constructions are supported. Details under the heading "XPath limitations" on the doc [page](http://dev.mysql.com/doc/refman/5.1/en/xml-functions.html#function_extractvalue) mentioned in abatishchev's answer.
I just got the answer from a colleague, it seems trimming the xml often helps:

```
select * from xml where 
   trim(both '\r\n' from ExtractValue(xml, '/some/xpath')) = 'value';

```