Comment puis-je créer des requêtes sql pour rechercher les correspondances partielles?

J'ai un ensemble d'éléments en db .Chaque item a un name and a description.J'ai besoin de mettre en œuvre un search établissement qui prend un certain nombre de mots-clés et retourne articles distincts qui ont au moins l'un des mots-clés correspondant à un mot dans le nom or description.

par exemple
Je l'ai dans la db ,trois éléments

1.item1 : 
    name : magic marker
    description: a writing device which makes erasable marks    on whiteboard

2.item2:
    name: pall mall cigarettes
    description: cigarette named after a street in london

3.item3:
    name: XPigment Liner
    description: for writing and drawing

Une recherche en utilisant le mot-clé "l'écriture" doit retourner marqueur magique et XPigment Liner

Une recherche à l'aide du mot clé 'mall' doit retourner le deuxième élément

J'ai essayé d'utiliser le LIKE mot-clé et IN mot-clé séparément ,..
Pour IN mot clé de travail,la requête doit être

SELECT DISTINCT FROM mytable WHERE name IN ('pall mall cigarettes')

mais

SELECT DISTINCT FROM mytable WHERE name IN ('mall')

renvoie 0 lignes

Je ne pouvais pas comprendre comment faire une requête qui peut accueillir à la fois le nom et la description des colonnes et permet à la partie de mot de match..

Quelqu'un peut-il aider?

mise à jour:

J'ai créé la table à l'aide d'hibernate et pour le champ description, utilisé javax.la persistance @Lob annotation.À l'aide de psql lorsque j'ai examiné le tableau,Il est indiqué

...
 id           | bigint                      | not null
 description  | text                        |  
 name         | character varying(255)      | 
...

L'un des enregistrements dans la table, c'est comme,

id | description | name 
21 | 133414      | magic marker
Vous devez utiliser plutôt que DANS. Est utilisé pour trouver les valeurs à partir d'un ensemble. COMME le devrait être utilisé pour une partie de la chaîne des comparaisons.
Tout d'abord, vous devez comprendre ce que la table de la description textuelle est stocké.
est-il possible de savoir qui?J'utilise postgres..ne pouvais pas trouver beaucoup d'aide de la /d commandes

OriginalL'auteur Damon Julian | 2011-08-24